2012-01-04 63 views
2

只有第一個結果使用正則表達式c# vs2008正則表達式返回來自多個匹配

我試圖從文本加載從文件中很長的字符串得到的數字。

在這個源字符串中有多個我想要出來的數據實例。例如:
例如。 「稅務發票否INV1870507」可在來源String中重複10次,每次比賽之間有任何未知數量的字符。 我想獲得數字「1870507」。這個數字對於我加載的每個不同的文件都是不同的,我需要找到這個數字。

使用此圖案:(?<=Tax Invoice No[\s\r\n]+INV)(?'InvNo'[^\s\r\n]+)? 我可以正確地獲得每次發生的匹配並可以讀取數字。我得到10場比賽和10組。

我想讓Regex在第一場比賽中短路,並且只返回1場比賽因爲我有我需要的信息,因此無需保持匹配。

任何人都可以請指教?

+0

請參閱http://stackoverflow.com/questions/2631183/c-sharp-regex-how-to-specify-to-only-match-first-occurrence – 2012-01-04 08:05:26

回答

3

你想用這個C#,所以你可以用:

Regex regex = new Regex("(?<=Tax Invoice No[\s\r\n]+INV)(?'InvNo'[^\s\r\n]+)?"); 
regex.Match(myString); 

匹配:將搜索首次出現正則表達式的輸入字符串...

應實際上做你想做的事。