繁体   English   中英

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

[英]Splitting a Quoted Search String with Regular Expressions

我试图弄清楚如何将字符串分成可搜索的术语。 我需要

  • 按空格和单引号分隔(忽略单字符,非引号结果)
  • 返回带引号的短语,不带引号

因此,如果我将其应用于: “引用短语”单个单词 ,它将返回

  • 引用短语

这是到目前为止(使用Javascript),但我必须将引号分开。

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

有什么办法可以只使用一个正则表达式呢?

这似乎可行,但我不确定是否已涵盖所有情况。 我不确定它是否可以在IE 5中运行,但这可能不会让您担心。 它可以在IE 6和我尝试过的所有其他浏览器中使用。 它还从引号内的匹配项中删除前导和尾随空格:

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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM