2014-10-30 20 views
1

在我的等式中,我試圖刪除在正則表達式代碼中提到的特定單詞後出現的第一個單詞。例如:停止刪除小數點的正則表達式

在句子:

你好,我的名字是羅傑

我與此正則表達式提取詞 「羅傑」:

Regex reg3 = new Regex("is\\s\\w+"); 
MatchCollection match3 = reg3.Matches(result); 
foreach (Match match in match3) 
{ 
    var val = match.Value; 
    val = val.Replace("is", ""); 
    val = val.Trim(); 
} 

但在例如這樣的情況:

我的答案是3.05

,當我採用相同的正則表達式,我結束了這一點:

那是因爲正則表達式後,將刪除所有人物「是「,我該如何更改正則表達式,以便在像上面提到的那樣的情況下,它使decimal保持原樣並打印3.05?

+0

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2014-10-30 08:09:38

+0

你是否總是想在'是'後的最後一個單詞? – 2014-10-30 08:10:56

回答

2

打印第一個數字後停止,因爲以下.不是單詞字符。爲了匹配字面點,您需要將\w.放在character class的內部。

Regex reg3 = new Regex("is\\s[.\\w]+"); 

OR

Regex reg3 = new Regex(@"is\s[.\w]+"); 
+0

匹配所有非空格字符'@「是\ s \ S +」' – 2014-10-30 08:18:00

+0

謝謝它的作品:) – user3306938 2014-10-30 09:45:29