すべての有効な正規表現に一致するRegexpを使用することは可能ですか?

StackOverflow https://stackoverflow.com/questions/2906848

質問

特定の文字列が正規表現を使用して有効な正規表現であるかどうかを検出することは可能ですか?

私はいくつかの文字列を持っていると言ってください、それは有効な正規表現であるかもしれないし、そうでないかもしれません。正規表現には、有効な正規表現に対応する文字列に一致したいと思います。それは可能ですか?または、これを検出するために、より高いレベルの文法(つまり、コンテキストフリー言語)を使用していますか? perl regexpsのようなregexpsの拡張バージョンを使用している場合、それは影響しますか?

それが可能であれば、regexpマッチングregexpは何ですか?

役に立ちましたか?

解決

いいえ、不可能です。これは、有効な正規表現にはグループ化が含まれるためです。これには、バランスの取れた括弧が必要です。

バランスの取れた区切り文字は、正規表現によって一致することはできません。代わりにaと一致する必要があります コンテキストフリーの文法. 。 ( 最初の例 その記事では、バランスの取れた括弧を扱っています。)

他のヒント

ここで素晴らしい記事を参照してください:

正規表現の正規表現?

答えは、正規表現は通常の文法を使用して書かれているのではなく、コンテキストのないものを使用して書かれているということです。

あなたの質問が「すべての有効な正規表現と一致する」場合、答えは(おそらく驚くべきことに)「はい」です。正規表現 .* すべての有効な(および非valid)正規表現を一致させますが、有効な式を見ているかどうかを判断するのにかなり役に立たない。

ただし、質問は「すべてで有効な正規表現のみを一致させる」ため、答えは(DVKとプラチナの紺ureが「いいえ」と言っているためです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top