我需要将&(0-9a-z)
替换为#$1
,但前提是&
是单身而不是&&.
我尝试类似:([^&]|)(&(0-9a-z))
,但只选择全部,或[^&](&([0-9a-z]))
,但仅在&
不是第一个字符时才有效; /
EG: "& 5我的文字&& 6的真棒& a !!! &安培;!" ="#5我的文字&& 6it真棒#a !!! &安培;!"
那么,只有当&
字符有{{1}}字符时才会选择此项?
答案 0 :(得分:2)
您可以使用负面的后置断言来确保匹配&
之前没有其他&
。
(?<!\&)\&[0-9a-z]
答案 1 :(得分:1)
对于此正则表达式,您可以同时使用负向lookbehind和正面looahead:
(?<!&)&(?=[0-9a-z])
仅使用#
替换而不使用任何群组捕获。
答案 2 :(得分:0)
我相信你可以使用/[&]{1}/g
如果我的记忆正确(虽然这可能过于激进),{1}表示1次出现,g表示匹配可能多次发生。
这很可能需要很多调整以使其正确执行,我一直使用http://www.visibone.com/regular-expressions/这绝对是天赐之物。