3

ここで少し混乱しています。後方参照を含む RegEx は明らかに正規表現ではありません。たとえば、コンテキスト依存のコピー言語 (任意の単語 w の場合は「ww」) を記述するために使用できるためです。しかし同時に、それらは HTML のような文脈自由言語を記述するためには (あるいは単に対応する括弧でさえも) 使用することはできません。

そうは言っても、この種の「正規表現」はチョムスキー階層のどこかに属していますか、それとも行間のフランケンシュタインの嫌悪感ですか?

4

1 に答える 1

2

彼らは本当に合いません。

後方参照を含む正規表現は、一部の非文脈自由言語 (例: (.*)\1) と一致する可能性がありますが、すべての文脈自由言語と一致するとは限りません (典型的な例は、入れ子になった括弧です)。

関連する CSTheory StackExchange の投稿を次に示します。これには、さらに詳細が記載されています。

一部の実装 (.NET や Perl など) は後方参照よりも先に進み、ネストされた括弧に一致する場合があることにも注意してください。

于 2013-02-08T20:10:24.117 に答える