我想識別並提取數字值,然後加上'KGS'(數字和'KGS'之間沒有空格。字符串可能包含其他數字NOT'KGS'後面的數字應該被忽略例:正則表達式用於提取數字,後跟'KGS'
This is a 123 sample (500KGS) string.
500
應該提取
我想識別並提取數字值,然後加上'KGS'(數字和'KGS'之間沒有空格。字符串可能包含其他數字NOT'KGS'後面的數字應該被忽略例:正則表達式用於提取數字,後跟'KGS'
This is a 123 sample (500KGS) string.
500
應該提取
我建議在這裏使用一個不太嚴格的模式,因爲你沒有驗證,b提取值。現在,您的正則表達式只會提取56
,578.56
或52,456
類似的值,而像2,400.56
這樣的值將不會匹配。
使用
/\d[\d.,]*(?=\s*KGS)/i
見regex demo。或者,捕獲:
/(\d[\d.,]*)\s*KGS/i
結果在組1中。請參見another demo。
\d[\d.,]*
將匹配一個數字,然後是零個或多個數字,.
或,
。
/i
修飾符會使正則表達式不區分大小寫。根據正則表達式的不同,您甚至可以使用此修改器的內聯版本(?i)
- 只需將它放在模式開始處即可。
這裏的答案: (\ d +(:?[,] \ d +))\ S(KGS)
?或[[\ d [\ d。,] *(?= \ s * KGS)'](https://regex101.com/r/g7InDO/1) –
謝謝Pan Wiktor。有沒有簡單的方法來匹配'KGS'不區分大小寫? – PaulP
當然,'/ \ d [\ d。,] *(?= \ s * KGS)/ i'或'(?i)\ d [\ d。,] *(?= \ s * KGS)' –
兩者當然都有竅門。再次感謝。 – PaulP