假设我想在任何分隔符字符处拆分字符串,但不是转义字符,我通常可以使用负后视和 string.split(regex)。
例如:
const regex = /(?<!\\)\,/;
'abc,def'.split(regex);
'abc\\,def'.split(regex);
在,in处拆分abc,def,但不在 in处拆分abc\,def。这可以!
但是,如果分隔符本身是一个反斜杠,则负向后视似乎无法按预期工作:
const regex = /(?<!\\)\\/;
'abc\\def'.split(regex);
'abc\\\\def'.split(regex);
\在abc\defAND 中的第一个分开abc\\def。
我天真地以为否定的lookbehind 与\前面的a不匹配\。
参见:https : //regex101.com/r/ozkZR1/1
如何在任何非转义字符处实现 string.split(regex) ,这些字符不会因反斜杠或换行符等特殊字符而分崩离析(人们也应该能够转义它们)?
素胚勾勒不出你
冉冉说
相关分类