我现在有一个使用正则表达式的程序:
const regex = /[\s]|('[^']')|[\w-]+|[']/gm;
运行时:
console.log("'one 'two' three'".match(regex) || []);
我得到:
[
"'",
"one",
" ",
"'",
"two",
"'",
" ",
"three",
"'"
]
我需要以一种我可以在最后得到的方式更新正则表达式:
[
"'",
"one",
" ",
"'two'",
" ",
"three",
"'"
]
1条答案
按热度按时间8e2ybdfx1#
你在引用的模式中漏掉了
+
。我还将其更改为只匹配单词符号和减号(与下一个模式类似),以排除
'one '
的匹配。如果需要匹配引号中的短语(如
'abc abc'
),则可以使用\s|('(?=[\S])[^']+?(?<=[\S])')|[\w-]+|'
EDIT:根据OP的正确输入,允许包含
'
的单词,如that's
: