這裏是我的輸入文本:正則表達式:無法做負lookahed
英特爾酷睿i3-4170 3.7GHz的
我試圖用XXX
更換3.7GHz
這裏是我的模式:
/\s(?=[^\s]+(.*?GHz)$)/
但這種匹配:i3-4170 3.7GHz
如果我添加了全球標誌我得到了我需要在第二組,但我不知道這是可靠的。
https://regex101.com/r/ARa1tG/1
這裏是我的輸入文本:正則表達式:無法做負lookahed
英特爾酷睿i3-4170 3.7GHz的
我試圖用XXX
更換3.7GHz
這裏是我的模式:
/\s(?=[^\s]+(.*?GHz)$)/
但這種匹配:i3-4170 3.7GHz
如果我添加了全球標誌我得到了我需要在第二組,但我不知道這是可靠的。
https://regex101.com/r/ARa1tG/1
簡單:'[^] * GHz' –
您正在捕獲'ghz'。請參閱:https://regex101.com/r/tfh3zd/1 – linden2015
更簡單:'\ S * GHz' - 第二個'\ b'可能很有用,但第一個不會做任何事情。 – pguardiario
你在捕捉'.ghz'和'3ghododiac'。 https://regex101.com/r/plKEJy/1 – linden2015
@ linden2015謝謝修復;)。 –
我的回答:
\b\d+(?:\.\d+)?ghz\b
\b // word boundary
\d+ // 1 or more digits
(?: // optional group (not captured)
\.\d+ // a dot, then 1 or more digits
)? // end of group
ghz // literal
\b // word boundary
你能提供輸入文本的另一個例子,因爲我不知道你爲什麼要用這樣一個複雜的正則表達式就像這樣一個簡單的模式匹配。 \ d + \。\ d + GHz這個正則表達式也可以完成這個例子的作業 –