有人可以幫我建立這個正則表達式,請...正則表達式從字符串中提取號碼
鑑於以下字符串...
- 「四月(123個更少的部件456個鏈輪)」
- 「五月(789個部件少012鏈輪)」
我需要一個正則表達式,從文本中提取的兩個數字。月份名稱會有所不同。括號中的「小部件少」和「鏈輪」文本預計不會在字符串之間發生變化,但是如果能夠改變這些文本,它將非常有用。
在此先感謝。
有人可以幫我建立這個正則表達式,請...正則表達式從字符串中提取號碼
鑑於以下字符串...
我需要一個正則表達式,從文本中提取的兩個數字。月份名稱會有所不同。括號中的「小部件少」和「鏈輪」文本預計不會在字符串之間發生變化,但是如果能夠改變這些文本,它將非常有用。
在此先感謝。
,如果你肯定知道,有隻將是2個地方,你必須在你的字符串的數字的列表,這是你要拉的唯一的事情出,那麼你應該能夠簡單地使用
\d+
^\s*(\w+)\s*\(\s*(\d+)\D+(\d+)\D+\)\s*$
應該工作。比賽結束後,反向引用1將包含月份,反向引用2將包含第一個數字,反向引用3將包含第二個數字。
說明:
^ # start of string
\s* # optional whitespace
(\w+) # one or more alphanumeric characters, capture the match
\s* # optional whitespace
\( # a (
\s* # optional whitespace
(\d+) # a number, capture the match
\D+ # one or more non-digits
(\d+) # a number, capture the match
\D+ # one or more non-digits
\) # a)
\s* # optional whitespace
$ # end of string
+1的解釋,但我必須給西雅圖倫納德正確的答案,因爲它是如此簡單。 – 2010-11-16 15:49:47
您解決方案的好解釋 – itsmatt 2014-03-21 12:38:47
你可以使用類似:
[^0-9]+([0-9]+)[^0-9]+([0-9]+).+
然後獲得第一個和第二個捕獲組。
您擊敗了我!上面的正則表達式,當全局應用於整個字符串時(這是依賴於實現的,所以OP必須向我們提示語言),將提取數字並忽略其餘部分。 – 2010-11-15 18:06:35
例如,在ruby中它會是'matches = string.scan(/ \ d + /)' – 2010-11-15 18:45:25
我很抱歉,我正在使用.NET實現。 – 2010-11-15 19:16:10