Javascript 使用正则表达式分析字符串到字符串数组
我有这样的字符串:与\n\n组合的任何字符(除\n外)都可以位于字符串中的任何位置,并重复0次或更多次Javascript 使用正则表达式分析字符串到字符串数组,javascript,arrays,regex,string,Javascript,Arrays,Regex,String,我有这样的字符串:与\n\n组合的任何字符(除\n外)都可以位于字符串中的任何位置,并重复0次或更多次 var input = "\nabc\n\n"; 预期产出为: var output = ['\n', 'abc', '\n', '\n'] 我可以使用input.split('\n')将字符串生成数组,但在这种情况下,我将丢失\n,实际上我需要\n和任何其他字符。您可以使用 console.log(input.match(/\n|\w+/g)); // ["↵", "abc", "↵",
var input = "\nabc\n\n";
预期产出为:
var output = ['\n', 'abc', '\n', '\n']
我可以使用input.split('\n')将字符串生成数组,但在这种情况下,我将丢失\n,实际上我需要\n和任何其他字符。您可以使用
console.log(input.match(/\n|\w+/g)); // ["↵", "abc", "↵", "↵"]
您可以尝试使用
(?=\n)
?由于这不会实际捕获\n
字符,因此我认为这更合适
> var s = "\nabc\n\n";
> s.match(/\n|[^\n]+/g)
[ '\n',
'abc',
'\n',
'\n' ]
试试这个。抓取捕获。参见演示
您可以使用多行定位进行拆分
input.split(/^|$/gm)
您将获得:
["
", "abc", "
", "
"]
你在说哪种语言?谢谢!但是\w不匹配特殊字符,例如*();+?/,.|\%$#@~谢谢,Amit,\w不匹配特殊字符,例如*()&^%$#@!~但我需要这些角色
["
", "abc", "
", "
"]