正则表达式的替代方法

时间:2019-01-30 14:10:53

标签: regex

不幸的是,Firefox还不支持后置正则表达式,而且我无法重写它。

方案:用/分隔字符串,但不分隔{abc}后的/

regex:/(?<!abc)\//g 范例文字:test/abc/foo

所需结果:仅第一个而不是abc之后的/

是否可以重写为正则表达式,还是应该寻找没有正则表达式的解决方法?

1 个答案:

答案 0 :(得分:1)

如果要避免后顾之忧,则不能轻易使用拆分方法。

您可以匹配/abc/子字符串以外的任何字符:

/(?:abc\/|[^\/])+/g

请参见regex demo

该模式的意思是:

  • (?:-一个非捕获组的开始:
    • abc\/-自由的abc/子字符串
    • |-或
    • [^\/]-除/以外的任何字符
  • )+-1次或多次重复。

JS演示:

console.log(
   "test/abc/foo".match(/(?:abc\/|[^\/])+/g)
)