/ /パターン間の文字列を抽出するための正規表現 - c#、.net、regex

パターン間の文字列を抽出する正規表現 - c#、.net、regex

正規表現を使用するための助けが必要start_patternとend_patternの間の文字列を抽出します。さらに、正規表現は、end_patternが存在しなければ、行の最後まですべての文字をgrepする必要があります。

Sample 1 : "BOOK1:book1A,book1B,book1C,book1D"

期待される結果:book1A、book1B、book1C、book1D

Sample 2 : "BOOK1:book1A,book1B,book1C,book1D|BOOK2:book2A,book2B,book2C,book2DA"

期待される結果:(1)book1A、book1B、book1C、book1D (2)book2A、book2B、book2C、book2DA

私は、文字列ターミネータが "|"のときに正規表現(以下に示す)を解決することができましたが、ターミネータがないときに解決することはできません

(?<=BOOK1:).*(?=|)

回答:

回答№1は2

つかいます $ 変更 .*.*?

(?<=BOOK1:||).*?(?=||$)

$ 行または文字列の終わりをマークする

.*? 遅れてマッチする


例えば、入力

a|b|c|d|e

正規表現で

(?<=|).*(?=|)

それは一致するだろう b|c|d

正規表現で

(?<=|).*?(?=|)

それは一致するだろう

b
c
d