Javascript 尝试使用转义和非转义分隔符拆分字符串

Javascript 尝试使用转义和非转义分隔符拆分字符串,javascript,regex,Javascript,Regex,我有一个字符串,格式为ab/c\/d\/e/f。我试图在未转义的前斜杠上拆分字符串 到目前为止,我有这个正则表达式(?:[^\\/])/。但是,它使用/前面的最后一个字符。因此,如果我用“#”替换而不是拆分,字符串看起来像a#c\/d\/#f。在拆分的情况下,我得到的字符串与使用的最后一个字符相同 我试着使用一个非捕获组,但这似乎也不起作用。在javascript中执行此操作。您可以在JS中使用此正则表达式来返回/之前的所有匹配项,忽略所有转义的情况,即\/。当\也作为\转义时,此正则表达式还负

我有一个字符串,格式为
ab/c\/d\/e/f
。我试图在未转义的前斜杠上拆分字符串

到目前为止,我有这个正则表达式
(?:[^\\/])/
。但是,它使用
/
前面的最后一个字符。因此,如果我用“#”替换而不是拆分,字符串看起来像
a#c\/d\/#f
。在拆分的情况下,我得到的字符串与使用的最后一个字符相同


我试着使用一个非捕获组,但这似乎也不起作用。在javascript中执行此操作。

您可以在JS中使用此正则表达式来返回
/
之前的所有匹配项,忽略所有转义的情况,即
\/
。当
\
也作为
\
转义时,此正则表达式还负责处理这些情况

/[^\\\/]*(?:\\.[^\\\/]*)*(?=\/|$)/gm

const regex=/[^\\/]*(?:\\.[^\\/]*)*(?=\/\$)/gm
const str=`a b/c\\/d\\\\\/e\\\\\/f1/2\\\\\\\\\\\\/23/99;
设m=str.match(regex).filter(布尔值)

console.log(m)
@anubhava-ah我将把它添加到问题中。在javascript中执行此操作。反斜杠也可以像
a b/c\/d\\/e/f
那样转义吗?实际上,无法修改源字符串。请尝试使用
(?:[a-z])(\/)(?:[a-z])
,然后在代码上选择组1。检查这个答案:不是要求修改源输入,我是问是否有可能获得如下输入:
ab/c\/d\\/e/f
,并且预期输出为
['ab','c\/d\\','e','f']
?您说它将处理
出现转义的情况,但对于
\\\\\\\\\\\\\\\\\\\\\/ab
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/*(\ \/)
可与
.filter(布尔值)
一起使用,以消除空匹配项