[英]Regex not working in javascript split method but working Online test websites
我有这个正则表达式(?=(?:(?:[^']*'){2})*[^']*$)\\\\n
完美地在在线测试网站上工作,但不在下面的代码中。 我有一个带有多个\n
的字符串,还有一些带有 in "
双引号的字符串,但我想忽略所有带有 in "
双引号的\n
。
let input = "a,b,c\n'aa\nbb\ncc'\nhello world";
const lines = input.split("(?=(?:(?:[^']*'){2})*[^']*$)\\\\n");
console.log(lines);
想要这个 Output:
[0]: "a,b,c"
[1]: "aa\nbb\ncc"
[2]: "hello world"
为什么这么复杂?
let input = "a,b,c \n 'aa\nbb\ncc' \n hello world"; console.log(input.split(' \n '))
您的解释和示例数据之间存在一些歧义。 您在输入中谈论双引号作为分隔符,但在示例中却相反。 正则表达式中的\n
之前也有太多转义字符。 \\\\n
变为\n
。 不是\\n
因为在 javascript 字符串中\n
代表实际的换行符。 无需在正则表达式中转义它。
let input = 'a,b,c\n"aa\nbb\ncc"\nhello world'; let lines = input.split(/(?=(?:(?:[^"]*"){2})*[^"]*$)\n/); console.log(lines);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.