2009-03-23 35 views
8

誰かが正規表現を含むファイルを見つけるためのコードを持っていますか?私は、BREとEREの2種類のフレーバーがあると仮定します。正規表現を見つけるための正規表現ですか?

テストスイートには、isRegex()テストのようなものがあると思います。誰もが任意のコードを持つことができますか?もちろん、包括的なものを探しています。

これが議論されたのを参照してください。hereしかし、実用的な反応は見られませんでした。おそらく典型的な//で囲まれた正規表現を含むファイルに対してgrepしたいのですが、どうすればいいでしょうか?

+0

[有効な正規表現を検出する正規表現はありますか?](http://stackoverflow.com/questions/172303/is-there-a- regular-expression-to-detect-a-valid -regular-expression) –

答えて

18

正規表現自体はregular languageではありません。手がかりは、それらに括弧と角括弧などが含まれ、バランスが取られている必要があるということです。

正規表現自体は、context-free grammarで記述し、recursive-descent parserで解析できます。

+0

+1の正しさ。 –

3

egrep '/.+/' file 

を越えて、あなたは本当に関与運動を見ています。

1

正規表現のみまたは大部分が正規表現を含むファイルを探している場合、統計には、特定のファイルに他のものより多くの構文が含まれていることが示されます。だから、インジケータのセットを定義し、そのスコアをメジャーに組み込んで、それがどれほど興味深いかをファイルに記録しました。カットオフを選び、それを放す。いくつかの指標:/ FOO/

  • ていない標準コードファイル
  • 、危険な(より少ない圧縮の複数の[0-9]、[AZ] +など
  • 存在の

    • 存在私が知っているが、正規表現文法のコンパクトさは、直感的に、通常の言葉よりも圧縮することが難しくなります)
    • など

    しかし、これはただのワンショットであれば、あなたはおそらく最高のオフにしていますChaos's answerを使用して手動で結果をパージダウンします。あなたが探している正規表現の中に特に何かがありますか?