我正在尝试用属性替换var
标记,以便将它们包装在方括号中
data.replace(/<var .*?="">(\d+)<\/var>/ig, '[[[$1]]]');
但如果有多个var
标记,则无效。例如,
<var id-0=""></var> responds <span id-1="">in <var num="">1</var> days</span>
将导致
[[[1]]] days</span>
但我需要的结果是
<var id-0=""></var> responds <span id-1="">in [[[1]]] days</span></strong>
答案 0 :(得分:2)
使用 <var [^=]*="">(\d+)<\/var>
如果有多个属性,或者该属性的值类似于num="something"
,那么上面的内容将无效,请使用此 <var( [^=]*="[^"]*")*>(\d+)<\/var>
[[[$2]]]
代替。
答案 1 :(得分:1)
将.*?
更改为[^=">]*?
。即使它不贪心,你也可以捕获它太多了。