私はregex matcherの検索モードの背後にある理論について疑問に思っています。だから、aab
に一致する正規表現を持っているとしたら、文字列の先頭にmatch
の代わりに何か文字列の任意の位置から始まるこの一致を実行できるようにしたいとします。つまり、マッチモードでは、文字列aab
が正規表現と一貫していることを確認できますが、search
ではaaab
の対応するスパン結果が生成されます。 スーパー特有のことですが、DFA searcher
を構築する方法はありませんか、DFSMには追加できないメモリが必要なため、これは基本的に不可能です。実際にはmatcher
からmatcher
をforループの入力文字列に再適用することによってsearcher
を構築することはできますが、そのようなアプローチの複雑さはO(len_of_pattern * len_of_input)のようなものです。正規表現:DFAと一致するものの代わりに
2
A
答えて
1
あなたは基本的に自分の質問に答えたと思います。検索は、現代の正規表現実装の他の多くの機能と同様に、メモリの驚異を利用して有限オートマトンで実現不可能なことを行います。 DFAは従来、メモリを必要とするため、文字列をループしたり、入力に沿ってバックトラックすることができませんでした。検索には一致を見つけ、その一致が文字列にどのように適合するかを理解する能力が必要です。
1
正規表現サーチャは基本的に正規表現マッチャーと同じものですが、式の前には.*
が付いています。
関連する問題
- 1. 正規表現での代替一致
- 2. 正規表現以外のものと一致する正規表現
- 3. グローバル正規表現の代わりに
- 4. 正規表現のディレクトリパスに一致する正規表現
- 5. 正規表現と一致する正規表現2.3
- 6. 正規表現と一致する正規表現
- 7. 正規表現 - 一致するものがありません
- 8. 正規表現に一致する正規表現(CTLDループ)
- 9. 正規表現に一致する正規表現
- 10. 正規表現に一致する正規表現
- 11. オプションパラメータと一致する正規表現
- 12. 正規表現と一致するコードコメント
- 13. 正規表現のURLを一致させる正規表現
- 14. HTMLの正規表現に代わるもの
- 15. 正規表現の一致とPHP
- 16. 正規表現での正規表現の一致値
- 17. 文字列または正規表現のリテラルにない正規表現と一致する正規表現
- 18. 正規表現一致
- 19. 正規表現一致%\%
- 20. 正規表現に一致するURL
- 21. 正規表現に一致するタグ
- 22. 正規表現に一致するグループ
- 23. グループに一致する正規表現
- 24. 正規表現の代替(すべての一致)
- 25. 正規表現以外の日付と一致する正規表現
- 26. 正規表現のいずれかと一致する正規表現
- 27. 正規表現に一致しない正規表現
- 28. 正規表現を一致させる正規表現
- 29. 任意の文字に一致する正規表現内の正規表現
- 30. 最初に一致する正規表現で一致した正規表現を最初に一致する正規表現