Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式丢弃少于3个字符的字_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式丢弃少于3个字符的字

Javascript 正则表达式丢弃少于3个字符的字,javascript,regex,Javascript,Regex,我之前问过一个关于包装所有双引号单词的问题。 那很好。但是,我需要在数组中丢弃以下所有单词: 少于2个字符且不在双引号内 如果两个字符位于双引号内,则不应丢弃它们 比如说。 如果输入:“xyz我在美国”,则输出应为: ["xyz", "the", "United", "States"] ["xyz", "in the United States"] 如果我在美国输入“x

我之前问过一个关于包装所有双引号单词的问题。 那很好。但是,我需要在数组中丢弃以下所有单词:

  • 少于2个字符且不在双引号内
  • 如果两个字符位于双引号内,则不应丢弃它们
比如说。 如果输入:“xyz我在美国”,则输出应为:

["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作为首选项