正则表达式:无法进行负面前瞻

Regex: Unable to do negative lookahed

这是我的输入文本:

Intel Core i3-4170 3.7GHz

我正在尝试将 3.7GHz 替换为 XXX

这是我的模式:

/\s(?=[^\s]+(.*?GHz)$)/

但这匹配:i3-4170 3.7GHz

如果我添加 global 标志,我会在第二组中得到我需要的东西,但我不确定这是否可靠。

https://regex101.com/r/ARa1tG/1

您可以使用正则表达式

\b[^\s]*GHz\b

查看 regex 101 demo

另一种方法可以 - 更具体 - :

/[\d.]*\dGHz/g

[Regex Demo]

我的回答:

\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 
  • 标志:g,i
  • 步数:91

Demo