引号字符串列表的正则表达式匹配 - 未引用

时间:2008-09-29 05:24:36

标签: javascript regex actionscript-3

在Javascript中,以下内容:

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.match(/".*?"/g);
alert(result);

产生“快速”,“棕色狐狸”,“跳过”,“懒狗”

我希望每个匹配的元素都不加引号:快速的棕色狐狸,跳过,懒狗

regexp会做什么?

7 个答案:

答案 0 :(得分:7)

这似乎有效:

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.match(/[^"]+(?=(" ")|"$)/g);
alert(result);

注意:这与空元素(即“”)不匹配。此外,它不适用于不支持JavaScript 1.5的浏览器(前瞻是1.5功能)。

有关详细信息,请参阅http://www.javascriptkit.com/javatutors/redev2.shtml

答案 1 :(得分:4)

这不是一个正则表达式,而是两个更简单的正则表达式。

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';

var result = test.match(/".*?"/g);
// ["the quick","brown fox","jumps over","the lazy dog"]

result.map(function(el) { return el.replace(/^"|"$/g, ""); });
// [the quick,brown fox,jumps over,the lazy dog] 

答案 2 :(得分:1)

grapefrukt的回答也有效。我会使用大卫的变种

match(/[^"]+(?=("\s*")|"$)/g)

因为它正确处理任意数量的空格和字符串之间的标签,这就是我所需要的。

答案 3 :(得分:0)

您可以使用Javascript replace() method删除它们。

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';

var result = test.replace(/"/, '');

除了摆脱双引号之外还有更多内容吗?

答案 4 :(得分:0)

这就是我在actionscript3中使用的内容:

var test:String = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result:Array = test.match(/(?<=^"| ").*?(?=" |"$)/g);
for each(var str:String in result){
    trace(str);
}

答案 5 :(得分:0)

  

用于匹配简单引号和双引号之间的内容,以处理转义的内容。

当搜索引擎首先开车送我到这里时,我真的想让那些希望检查引号对的人找到更通用的问题:https://stackoverflow.com/a/41867753/2012407

正则表达式将获得格式良好的引号对之间的完整内容,例如'"What\'s up?"',而不是// Comment./* Comment. */等代码注释。

答案 6 :(得分:-1)

这是一种方式:

var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.replace(/"(.*?)"/g, "$1");
alert(result);