web-dev-qa-db-ja.com

正規表現まで、ただし含まない

正規表現の場合、検索までの構文は何ですか?ちょっと:

Haystack:
The quick red fox jumped over the lazy brown dog

Expression:
.*?quick -> and then everything until it hits the letter "z" but do not include z
61
NoodleOfDeath

lookahead regex syntax は、目標を達成するのに役立ちます。したがって、あなたの例の正規表現は

.*?quick.*?(?=z)

そして、.*?先読みの前に(?=z)遅延マッチングに注意することが重要です。式は、zfirst出現するまで部分文字列に一致します文字。

C#コードサンプルを次に示します。

const string text = "The quick red fox jumped over the lazy brown dogz";

string lazy = new Regex(".*?quick.*?(?=z)").Match(text).Value;
Console.WriteLine(lazy); // The quick red fox jumped over the la

string greedy = new Regex(".*?quick.*(?=z)").Match(text).Value;
Console.WriteLine(greedy); // The quick red fox jumped over the lazy brown dog
10
Igor Kustov

これを試して

(.*?quick.*?)z
0
Max