在Javascript中,以下内容:
var test = '"the quick" "brown fox" "jumps over" "the lazy dog"';
var result = test.match(/".*?"/g);
alert(result);
产生“快速”,“棕色狐狸”,“跳过”,“懒狗”
我希望每个匹配的元素都不加引号:快速的棕色狐狸,跳过,懒狗
regexp会做什么?
答案 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);