Regex匹配单词的首次出现
本文关键字:单词 Regex | 更新日期: 2023-09-27 18:06:20
对不起。我把这个例子改写如下,在下面的段落中,在mary第一次出现之后,我如何匹配数字(1((在我的情况下,所有三组都是强制性的(:
Regex.Match("Do you know 3453 **Mary** has a little lamb 1 and Mary likes dancing 2."
, @"(Do).*(Mary).*('d)");
目前,它匹配第二个Mary,因此,第三组捕获了2而不是1
使用.*?
而不是.*
:
Regex.Match("Do you know **Mary** has a little lamb 1 and Mary likes dancing 2.",
@"(Do).*?(Mary).*?('d)");
.*
匹配可能的最长子串(贪婪(,而.*?
匹配最短子串(懒惰(。在您的示例中,第一个.*
包含第一个Mary
,因为它匹配尽可能多的字符。