我希望这将有一个非常简单快捷的答案。我正在使用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/