2017-12-07 7 views
1

私は、エイリアスで相対パスを絶対パスに設定し、フォルダ名とファイル名が一致しないように、@記号で既に指定されているエイリアスの行を無視しようとしています。私は置換と一致までは行っていますが、@ bitで無視する行はできません。また、選択時に/ foldername/forwardスラッシュのいずれかを一致させたいと思います。regexが特定のシンボルの行を無視する

RegEx JP

https://regex101.com/r/vRUegE/1/

私はここで

を無視するように@でラインを期待しているだろう正しい応答はWiktor第おかげです:

Perfect working screenshot

Working example

WinGrepとこれらの正規表現の組み合わせを使用すると、何百分ものファイルを数百分でリファクタリングするのは簡単でした。

答えて

1

あなたが肯定後読みの後negative lookahead([email protected])を追加する可能性があります。

(?<=from..)([email protected])(.*)(?=module)(.*)(module) 
      ^^^^^ 

this regex demoを参照してください。 fromの直後にが見つかると、([email protected])は一致しなくなり、すぐ右側の2文字になります。

(?=module)はあまり意味がないので、正規表現を調整する必要があることに注意してください。 (?<=from..)([email protected])(.*)(module)を使用することもできます。

+0

ありがとうWiktor。これまでのところ、フォルダスラッシュを含む(?<= .. ..)(?!@)(\ *モジュール\ /)に定住しました。削除された領域には、ドットとフォワードスラッシュのみを確保する方法がありますが、そうでなければ行を無視しますか? – MagicLuckyCat

+0

申し訳ありませんが、無視するパスの例は何ですか? '.23455。/ module/8.service"からの 'import {service9} ';'? ['(?<= .. ..)(?!@)([\ /。] *)(\/module \ /)'](https://regex101.com/r/LLU4z9/3) –

+0

例: "dontinclude /../ module/11.service"からのimport {service11};もしdontincludeが..それは大丈夫だろう – MagicLuckyCat

1

あなたがどの言語でそれをするのは難しいですが、Javaと見えるのは難しいですが、正規表現はさまざまな言語で少し異なります。

(?<=from..)(.*)(?=module)(.*(module)/g 

ここでは、(。*) - e.q.任意の繰り返しの文字は、あなたに変更する必要があります

([^\@]*) (or ([^@]*) ) 

e.q.任意の@以外の文字

関連する問題