我有一个a b/c\/d\/e/f形式的字符串。我试图在非转义的正斜杠上拆分字符串。
到目前为止,我有这个正则表达式,(?:[^\\/])/。但是,它使用/前面的最后一个字符。因此,如果我使用"#“而不是拆分进行替换,则字符串看起来像a #c\/d\/#f。在拆分的情况下,我得到的字符串与使用的最后一个字符的分隔方式相同。
我尝试使用非捕获组,但似乎也不起作用。在javascript中做这件事。
发布于 2018-08-15 03:26:12
您可以在JS中使用此正则表达式,忽略所有转义的情况,即\/,返回/之前的所有匹配。当\也被转义为\\时,这个正则表达式还会处理这种情况。
/[^\\\/]*(?:\\.[^\\\/]*)*(?=\/|$)/gm
const regex = /[^\\\/]*(?:\\.[^\\\/]*)*(?=\/|$)/gm
const str = `\\\\\\\\\\\\/a b/c\\/d\\\\/e\\\\\\/f1/2\\\\\\\\\\\\\\/23/99`;
let m = str.match(regex).filter(Boolean)
console.log(m)
.filter(Boolean)用于筛选空匹配项。https://stackoverflow.com/questions/51847799
复制相似问题