2016-11-09 12 views
0

JavaScriptプロジェクトですべての正規表現を最適化する必要があります。簡単な検索で新しいRegExpで作成されたものがすべて見つかりました。問題はリテラルとして作成された問題です:/asd/プロジェクト内のすべての正規表現を検索するための正規表現

私はPhPStormを使用しているので、regexpエンジンはJavaです。それは我々が背後を見ていることを意味します。だから私はこの思い付いた:

(?<=[\s=(,\[\?:;|)])\/[^*\n/][^\n/]*[^*]\/ 

これで私に/.../のように見えて、次のいずれかが付いていないすべて与える翻訳:\s= (,[?:;|)を。

  1. 正規表現の前に他のものを付けることはできますか?
  2. 良いアイデアはありますか?

StringおよびRegExpクラスで使用されるメソッドを検索することはできません(exec、replace ...)。一部のプロジェクトで宣言を見つけるのは非常に難しく、時間がかかります。さらに、同じregexpを複数使用することもできます。

+1

ソースコードを正規表現で効率的に解析することはできません。特定のコンテキストでのみ有効です。したがって、見た目はあまり役に立たない。 ['/[^\\/]*(?:\\/[^\\/]*)*/'](https://regex101.com/r/tfzR0C/1)を試してみてください。それで "オーバーファイア"になるでしょう、私は恐れています。はい、あなたはそれの前に '(?<!\\)'を追加することができますが、(理論的に)他のエッジケースは依然として存在します。 –

+0

はまた表現、 グラム後のフラグを持つことができるJavaScriptの正規表現に注意してください - グローバルI - 大文字小文字を区別しない メートル - 複数行 Y - あなたは正規表現を使用するすべてのメソッドを検索でき – Stefan

+2

スティッキー検索: 'exec'、 'test'、' match'、 'search'、' replace'と 'split' –

答えて

0

私のregexpは少しオフでした。私はこれを最終的に使用しました:

(?<=[\s=(,\[\?:;|)])\/[^\n/].*?\/ 
関連する問題