我有一個文本:正則表達式: D不工作
Wheels – F/R_ Schwalbe TABLE TOP/Schwalbe Black Jack 26x2.2
而且正則表達式從該串解析輪胎尺寸:
/.*Wheels.*(\d*)x/
但它不工作。此外,當我從正則表達式刪除星號,我得到號碼6
作爲組比賽。
我有一個文本:正則表達式: D不工作
Wheels – F/R_ Schwalbe TABLE TOP/Schwalbe Black Jack 26x2.2
而且正則表達式從該串解析輪胎尺寸:
/.*Wheels.*(\d*)x/
但它不工作。此外,當我從正則表達式刪除星號,我得到號碼6
作爲組比賽。
你需要讓你的正則表達式非貪婪,因爲.*
會消耗你的數字和\d*
代表0或不匹配
.*Wheels.*?(\d*)x
.*?
意味着匹配儘可能多的字符數的時間儘可能停止.*
消耗你的數字
一lternately你可以使它更有效率,如果有Wheel
後沒有數字,並根據客戶所需的值的正則表達式
其中[^\d]*
平均匹配除數字什麼
謝謝你的解釋! – Src
@Src我很高興我能幫上忙,編碼愉快 –
你需要的數字lazy instead of greedy之前你.*
進行:
/.*Wheels.*?(\d*)x/
的.*
會貪婪地佔用了一切的x
,留下任何以下\d*
。由於*
可以有效匹配零個字符,因此\d*
的空匹配不是錯誤的結果。
通過添加?
做一個懶惰.*?
表達,它會嘗試匹配儘可能少的字符越好,允許以下\d*
到x
之前的所有號碼匹配。
謝謝你的解釋! – Src
'*車輪。*?(\ d *)x' –
@PavneetSingh,工作,但你能解釋我的錯誤和格式作爲答案,所以我可以接受它在哪裏。 – Src
只是爲了澄清,你想從字符串中選擇「輪子」,而不是別的? –