Javascript 正则表达式丢弃少于3个字符的字
我之前问过一个关于包装所有双引号单词的问题。 那很好。但是,我需要在数组中丢弃以下所有单词:Javascript 正则表达式丢弃少于3个字符的字,javascript,regex,Javascript,Regex,我之前问过一个关于包装所有双引号单词的问题。 那很好。但是,我需要在数组中丢弃以下所有单词: 少于2个字符且不在双引号内 如果两个字符位于双引号内,则不应丢弃它们 比如说。 如果输入:“xyz我在美国”,则输出应为: ["xyz", "the", "United", "States"] ["xyz", "in the United States"] 如果我在美国输入“x
- 少于2个字符且不在双引号内
- 如果两个字符位于双引号内,则不应丢弃它们
["xyz", "the", "United", "States"]
["xyz", "in the United States"]
如果我在美国输入“xyz I am”,则输出。应该是:
["xyz", "the", "United", "States"]
["xyz", "in the United States"]
目前我正在使用:
searchQuery.match(/(?<=")[^"]+(?=")|\w+/g) ?? [];
知道我做错了什么吗?结尾的+是不必要的,“{3,}”足以表示3个或更多字符
`I come from the "United States"`.match(/(?<=")[^"]+(?=")|\w{3,}/g);
// show ["come", "from", "the", "United States"]
`我来自“美国”`.match(/(?如果你使用量词{3,}
,你以后就不需要+
。在regex101中也将语言更改为ECMAScript,它会像@secan说的那样吐出错误:)Javascript不支持所有格量词\w{3,}+
您可以将测试用例保存在regex101中,并在此处共享链接。此外,您还应该将ECMAScript作为首选项