我希望这将有一个非常简单快捷的答案。我正在使用regular-expressions.info帮助我获取正确的正则表达式,以将URL编码的ISO-8859-1磅符号(“%A3”)转换为URL编码的UTF-8磅符号(“%C2%A3 ”)。

换句话说,当%A3尚未以%C2开头时,我只想将%A3与%C2%A3交换。

因此,我认为以下方法会起作用:

Regular Expression: (?!(\%C2))\%A3
Replace With:       %C2%A3


但事实并非如此,我不知道为什么!

我认为我的语法略有错误,但是我无法弄清楚!有任何想法吗?

仅供参考-我知道以下方法会起作用(同时已将其用作解决方法),但我确实想了解为什么前者不起作用。

Regular Expression: ([^\%C2])\%A3
Replace With:       $1%C2%A3


TIA!

最佳答案

为什么不将((%C2)?%A3)替换为%C2%A3,使前缀成为匹配项的可选部分?这意味着即使文本已经正确,您也可以用它自己“替换”文本,但是我认为没有性能问题。

关于javascript - Javascript正则表达式后退失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1390037/

10-11 12:31