Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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/20.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 使用正则表达式拆分带引号的搜索字符串_Javascript_Regex - Fatal编程技术网

Javascript 使用正则表达式拆分带引号的搜索字符串

Javascript 使用正则表达式拆分带引号的搜索字符串,javascript,regex,Javascript,Regex,我正在尝试找出如何将字符串拆分为可搜索的术语。我需要它 按空格和单引号拆分(忽略单字符、不带引号的结果) 返回不带引号的引用短语 因此,如果我将其应用于:“引用短语”单个单词 它会回来的 引语 单曲 言语 这是我到目前为止所拥有的(Javascript),但我必须单独去掉引号 var searchArray = temp.match(/"[^"]*"|[^\s']{2,}/g); for (index in searchArray) searchArray[index] = se

我正在尝试找出如何将字符串拆分为可搜索的术语。我需要它

  • 按空格和单引号拆分(忽略单字符、不带引号的结果)
  • 返回不带引号的引用短语
因此,如果我将其应用于:“引用短语”单个单词 它会回来的

  • 引语
  • 单曲
  • 言语
这是我到目前为止所拥有的(Javascript),但我必须单独去掉引号

var searchArray = temp.match(/"[^"]*"|[^\s']{2,}/g);
for (index in searchArray)
    searchArray[index] = searchArray[index].replace(/"/g, '');

有没有办法只用一个正则表达式就可以做到这一点?

这似乎可行,但我不确定我是否涵盖了所有情况。我不确定它是否能在IE 5中工作,但这可能不会让你担心;它适用于IE6和我尝试过的所有其他浏览器。它还从引号内的匹配项中去掉前导和尾随空格:

var regex = /("?)\s*\b(\S[^\1]*?)\b\s*\1/g;
var str = '"quoted phrase " single "quoted" words " yes "';
var res;

while ( (res = regex.exec(str)) ) {
    alert(res[2]);
}

考虑这个输入文本:<代码>“双引号”“单引号”“混合”引号“这里”“其他”方式<代码>也,如果忽略“单个字符”是一个引文,你会怎么做?嗯,我不在乎单引号,但我希望结果不是占有。为了便于讨论,我们可以忽略单引号。看起来这就可以满足我的要求了。非常感谢你!我想把你的答案标记为有用,但我的名声还不够好。