入力: ゴミ="stff",start1="allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah"
望ましい結果:DoubleQuotes を除くすべての文字の短編
*&^%$ブラブラ
c# .NET を使用:
string myRegExString = @"(?<=start[0-9].).*(?="")"
収量: allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah
テストを通じて、.* を二重引用符以外のすべての文字を含むセットに置き換えると、望ましい結果が得られることがわかっていますが、それは大変な作業であり、間違いを犯すことになります。.* の前に (?!"") または (?!="") を使用しても機能しません。
では、最初に見つかった二重引用符で先読みを停止するにはどうすればよいでしょうか。
回答からの正解(私がテストした限り):
(?<=start\d+="")[^""]*(?="")
また
(?<=start\d+="")[^""]+(?="")
または、これも機能しますが、要求されたものとはまったく異なります。
(?<=start\d+="")[^""]*
ありがとう。私はこのアイテムの先読みの側面に夢中になりました。