我试图用空格分隔javascript中的字符串,但是忽略用引号括起来的空格。所以我用Google搜索了这个正则表达式:(/\w+|"[^"]+"/g)
但问题是,这不适用于á等重音字符。所以请问我应该如何改进正则表达式以使其正常工作?
答案 0 :(得分:1)
那是因为\w
只匹配[A-Za-z0-9_]
。要匹配重音字符,请添加包含Latin-1字符\x81-\xFF
和à
,等等的unicode块范围ã
:
(/[\w\x81-\xFF]+|"[^"]+"/g)
还有this站点,这对构建所需的unicode块范围非常有帮助。
答案 1 :(得分:1)
这匹配不包含引号的非空格,并匹配引号之间的文本:
/[^\s"]+|"[^"]+"/g
答案 2 :(得分:0)
如果您想匹配所有非空白字符而不是仅匹配字母数字字符,请将\w
替换为\S
。