我有一个字符串,我使用这个正则表达式分裂成参数:
/('[^']*'|"(\\"|[^"])*"|(?:\/(\\\/|[^\/])+\/[gimy]*)(:? |$)|(\\ |[^ ])+|[\w-]+)/gi;
它适合像这样的字符串:
'test "foo bar" baz /^asd [x]/ str\\ str 10 1e10';
exept正则表达式在末尾有空格因为(:? |$)
我通过删除分割后的空格来解决这个问题,但是有没有办法通过正则表达式修改来做到这一点?
答案 0 :(得分:1)
将(:? |$)
更改为(?=:? |$)
(?=
是一个积极的预测,因此它会强制执行匹配,但不会返回)
答案 1 :(得分:1)
您可以将其更改为预测((?=…)
):
/('[^']*'|"(\\"|[^"])*"|(?:\/(\\\/|[^\/])+\/[gimy]*)(?= |$)|(\\ |[^ ])+|[\w-]+)/gi;
我还考虑将空格更改为\s
(和[^ ]
到\S
),以便处理其他空白字符,例如制表符和换行符。