2012-02-09 57 views
1

我有一個字符串,我需要解析它的價值...我怎樣才能從這個字符串中使用regEx在C#中的值解釋正則表達式?

var msg = "Sometext can't do this. Blah blah blah Version id: 'xxx'"; 

如何我可以使用正則表達式,並獲得最後兩個單引號之間的文本? xxx 注意{can not}中的第一個單引號 我正在尋找的值將始終位於單引號的最後一組之間。 正則表達式的簡單解釋也非常棒。

非常感謝任何幫助,提示,例子。

+0

你怎麼知道這兩個單引號是正確的呢?最後2個?那些在「:」之後的? – m0skit0 2012-02-09 16:37:13

+0

您需要首先定義規則 - 您需要在給定字符串中查找以及如何找到該規則。 – 2012-02-09 16:39:47

+0

是的......我在這個例子中尋找的值將總是在源字符串的最後2個單引號之間。 – Hcabnettek 2012-02-09 16:43:14

回答

3

這是最後的正則表達式

(?<=')[^']*(?='$) 

我使用的一般模式是

(?<=prefix)find(?=suffix) 

它發現躺着一個前綴和後綴之間的模式。我們要找出什麼是

[^']* 

這意味着什麼,但單引號(')重複零次或更多次。

最後我們在最後尋找'$,而不僅僅是'。這意味着單引號必須在行尾。

2

你可以試試這個

'\w*' 

它簡單易懂,\ W - 尋找字母數字字符,*使它看起來對於任何重複次數,其在單引號意味着尋找任何數量的字母數字的用單引號括起來的字符。

0

在特定string ...

@"'\w+'" 

...將匹配"'xxx'",但如果你知道string將始終"Version id: 'xxx'"結束,要考慮可能由單一包圍其他文字報價,你可以使用這個...

@"Version id: '(?<versionId>\w+)'$" 

...然後檢索與此版本ID ...

Match match = Regex.Match(msg, @"Version id: '(?<versionId>\w+)'$"); 

if (match.Success) 
{ 
    string versionId = match.Groups["versionId"].Value; 

    // Perform further processing on versionId... 
} 

正則表達式打破了這樣的:

相關問題