33
A
答えて
53
バックリファレンスとバックトラックは2つの異なるものです。前者は、コードの後のキャプチャの結果を使用しています。
(['"]).*?\1
これは(一瞬エスケープを無視して)、単一または二重引用符で囲まれた文字列にマッチします。これは、開いているシンボル(一重引用符または二重引用符)を参照するために逆参照を使用するので、最後に一致させることができます。
バックトラックは、マッチが失敗したときに正規表現が自然に行うことです。例えば、私はそれが最初.+
にaaaaaabc
と一致し、残りのd
に対してb
を比較する文字列
aaaaaabcd
に対して表現
.+b
に一致しています。これは失敗するので、ビットをバックトラックして.+
のaaaaaab
に一致させ、最後にb
とc
を比較します。これも失敗するので、再度バックトラックして、.+
の場合はaaaaaa
を、b
の場合はb
と一致します。
+0
クール!例.. – SIslam
関連する問題
- 1. MySQL正規表現のグループへの参照ですか?
- 2. 正規表現で$ 1と$ 2とは何ですか?
- 3. 正規表現正規表現と異なるハイブ正規表現ですか?
- 4. 正規表現の^と\ A、$と\ Zの違いは何ですか?正規表現で
- 5. 私のyii正規表現とは何ですか?
- 6. 正規表現/^\ s * $/doとは何ですか?
- 7. 次の正規表現とは何ですか?
- 8. マルチストリングの正規表現とは何ですか?
- 9. 接頭辞の正規表現とは何ですか?
- 10. 正規表現で+と*は何を意味しますか?
- 11. ^と$は正規表現で何を意味しますか?
- 12. PCRE正規表現では "?>"の意味は何ですか?
- 13. メモ帳++正規表現後方参照は、
- 14. Javaの正規表現では参照を渡すことは可能ですか?
- 15. Pythonの正規表現パッシブグループと後方参照
- 16. 正規表現では[^。] *は何を意味しますか?
- 17. R正規表現で^記号の意味は何ですか?
- 18. PHPの正規表現で "@"の機能は何ですか?
- 19. Javascriptの正規表現で[^]の意味は何ですか?
- 20. 正と負の数の正規表現検証とは何ですか?
- 21. 正規表現でKinveyに照会
- 22. 正規表現を変数で照合することはできますか?
- 23. 正規表現の正規表現と ' -
- 24. [\ s \ S] *の違いは何ですか?と*。 Javaの正規表現では?
- 25. 正規表現マッチの問題次の正規表現では
- 26. 正規表現はbashで
- 27. 正規表現ではJavaScript
- 28. は正規表現で
- 29. はPHPで正規表現
- 30. 正規表現ではJavaScript
* backtrace * =バックトラッキングと仮定すると、同様の質問:[どの正規表現にバックトラッキングが必要ですか?](http://stackoverflow.com/questions/8132412/which-regular-expression-requires-backtracking) –
ありがとうございます。はい。 – chrisjlee
http://www.regular-expressions.info/catastrophic.htmlに関する詳しい説明があります。 – bkzland