2017-02-14 2 views
1

この文字列の次の出現まで文字列( "/ export/home"と名付けましょう)とそれに続くすべて(オプションの改行を含む)と一致する必要があります。RegExはこの文字列の次の出現まで一致します

私は(。)(\ nは。エクスポート/ホーム/)/試してみました/それは、文字列から文字列への正しいセットが一致しません。

例:

/export/home/bla "123" "bla" test 1 
/export/home/bla "123" "bla" test 2 
/export/home/bla "123" "bla" test 3 
test4 
test5 
/export/home/bla "123" "bla" test 6 
/export/home/bla "123" "bla" test 7 
/export/home/bla "123" "bla" test 8 
test9 
/export/home/bla "123" "bla" test 1 

すべて、次の/ export/homeのが一致する必要があるまで、自宅/ /からの輸出を含みます。 は、すべてのヘルプは高く評価され、事前のおかげで

答えて

1

あなたはtempered greedy token使用することができます:regex demo

(?s).マッチ改行文字を含む任意の文字を行います参照してください

(?s)/export/home(?:(?!/export/home\b).)* 
       ^^^^^^^^^^^^^^^^^^^^^^^^ 

/export/home/export/homeにマッチします(?:(?!/export/home).)*は任意の文字(.)、/export/homeリテラルcharシーケンスを開始しない0回以上の出現(*)と一致します。

あなたunrollパターンであれば、それはthis demo

+1

を参照してください

/export/home/[^/]*(?:/(?!export/home/)[^/]*)* 

のようになります。あなたの先生ありがとうございました!今私はこのパターンを完全に理解するために取り組んでいます:) – user3322838

+0

それはあなたのために働いてうれしいです。私の答えがあなたにとって有益であると証明された場合は、upv​​otingも検討してください。 –

関連する問題