不幸的是,Firefox还不支持后置正则表达式,而且我无法重写它。
方案:用/
分隔字符串,但不分隔{abc}后的/
。
regex:/(?<!abc)\//g
范例文字:test/abc/foo
所需结果:仅第一个而不是abc之后的/
。
是否可以重写为正则表达式,还是应该寻找没有正则表达式的解决方法?
答案 0 :(得分:1)
如果要避免后顾之忧,则不能轻易使用拆分方法。
您可以匹配除/
或abc/
子字符串以外的任何字符:
/(?:abc\/|[^\/])+/g
请参见regex demo
该模式的意思是:
(?:
-一个非捕获组的开始:
abc\/
-自由的abc/
子字符串|
-或[^\/]
-除/
以外的任何字符)+
-1次或多次重复。JS演示:
console.log(
"test/abc/foo".match(/(?:abc\/|[^\/])+/g)
)