[英]Regex match the first appearance of a word
抱歉。 我重新討論了如下例子,如何在下一段中第一次出現瑪麗之后匹配數字( 1 )(在我的情況下,所有三組都是強制性的):
Regex.Match("Do you know 3453 **Mary** has a little lamb 1 and Mary likes dancing 2."
, @"(Do).*(Mary).*(\d)");
目前它匹配第二個瑪麗 ,因此,第三組捕獲2而不是1
使用.*?
而不是.*
:
Regex.Match("Do you know **Mary** has a little lamb 1 and Mary likes dancing 2.",
@"(Do).*?(Mary).*?(\d)");
.*
匹配最長的子串(貪婪),而.*?
匹配最短(懶惰)。 在您的示例中,第一個.*
包含第一個Mary
因為它匹配盡可能多的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.