2013-03-29 118 views
0

對不起。我重新定相如下面的例子中,我怎麼能瑪麗的下段首次亮相後立即匹配編號()(所有三組是強制性的在我的情況):正則表達式匹配單詞的第一次出現

Regex.Match("Do you know 3453 **Mary** has a little lamb 1 and Mary likes dancing 2." 
, @"(Do).*(Mary).*(\d)"); 

目前它匹配第二瑪麗,其結果是,第三組捕獲代替

+0

您是否有一種語言可以執行此操作? Python,Ruby,Javascript等? –

+0

@joeframbach,它在C# – captivatedbyUBB

+0

你想要什麼?檢查它是否顯示?它出現在哪裏? –

回答

2

使用.*?代替.*

Regex.Match("Do you know **Mary** has a little lamb 1 and Mary likes dancing 2.", 
    @"(Do).*?(Mary).*?(\d)"); 

.*最長子可能(貪婪)匹配,而.*?匹配最短(懶惰)。在你的例子中,第一個.*包含第一個Mary,因爲它匹配儘可能多的字符。

+0

謝謝!這個對我有用。 – captivatedbyUBB

相關問題