7.8.15. TokenRegexp
#
7.8.15.1. 概要#
バージョン 5.0.1 で追加.
注意
このトークナイザーは実験的です。仕様が変わる可能性があります。
注意
このトークナイザーはUTF-8でしか使えません。EUC-JPやShift_JISなどと一緒には使えません。
TokenRegexp
はインデックスを使った正規表現検索をサポートするトークナイザーです。
7.8.15.2. 構文#
TokenRegexp
には、引数がありません。
TokenRegexp
7.8.15.3. 使い方#
一般的に、正規表現検索は逐次検索で実行します。しかし、次のケースはインデックスを使って検索できます。
hello
のようにリテラルしかないケース
\A/home/alice
のようにテキストの最初でのマッチとリテラルのみのケース
\.txt\z
のようにテキストの最後でのマッチとリテラルのみのケース
多くのケースでは、逐次検索よりもインデックスを使った検索の方が高速です。
TokenRegexp
はベースはバイグラムを使います。 TokenRegexp
は、インデックス時に、テキストの先頭にテキストの先頭であるというマーク( U+FFEF
)を入れ、テキストの最後にテキストの最後であるというマーク( U+FFF0
)を入れます。
実行例:
tokenize TokenRegexp "/home/alice/test.txt" NormalizerAuto --mode ADD
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# [
# {
# "value": "",
# "position": 0,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "/h",
# "position": 1,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "ho",
# "position": 2,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "om",
# "position": 3,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "me",
# "position": 4,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "e/",
# "position": 5,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "/a",
# "position": 6,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "al",
# "position": 7,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "li",
# "position": 8,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "ic",
# "position": 9,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "ce",
# "position": 10,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "e/",
# "position": 11,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "/t",
# "position": 12,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "te",
# "position": 13,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "es",
# "position": 14,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "st",
# "position": 15,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "t.",
# "position": 16,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": ".t",
# "position": 17,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "tx",
# "position": 18,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "xt",
# "position": 19,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "t",
# "position": 20,
# "force_prefix": false,
# "force_prefix_search": false
# },
# {
# "value": "",
# "position": 21,
# "force_prefix": false,
# "force_prefix_search": false
# }
# ]
# ]