正则表达式在js中选择一个/但不是多个

时间:2017-09-06 16:46:17

标签: javascript regex split

我想在/但不在/////分割字符串。
我尝试了什么:

  1. /[^\/]\/[^\/]/g但我不希望选择/之前和之后的字符。
  2. /\b\/\b/g无效,因为\b仅计入\w
  3. /(?<!\/)\/(?!\/)/g但javascript中不支持lookbehind。
  4. 我无法找到实现目标的方法。有没有人解决这个问题,或者这在javascript中是不可能的?

1 个答案:

答案 0 :(得分:2)

您可以使用

.match(/(?:\/{2,}|[^\/])+/g)

请参阅regex demo

(?:\/{2,}|[^\/])+模式匹配一​​个或多个(+)出现的2个或更多/个字符或任何字符/。这意味着它匹配任何字符,直到单个/

var rx = /(?:\/{2,}|[^\/])+/g;
var s = "a/b//c///d////r";
console.log(s.match(rx));