[英]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.