我试图获得一个正则表达式,它会在双引号字符串中找到双引号字符串。例如:
"一些文字"字符串1"和#34;另一个字符串"等"
我想挑出"字符串1"和"另一个字符串"。
我得到了\"[^\"]*\"
,但这与#34;一些文字"相匹配在示例中。我基本上需要忽略第一个和最后一个引号并在其中匹配。
编辑:提到的示例并没有围绕它的文字引号,但它是一个Javascript字符串。示例正则表达式首先匹配整个字符串。我的Javascript如下。
var string = 'some "text" etc';
var pattern = new RegExp('\"[^\"]*\"/g');
var result = pattern.exec(string);
console.log("result: ", string);
// some "text" etc

所以它可能是我在Javascript中实现正则表达式的问题。
答案 0 :(得分:10)
不要逃离"
。只需查看引号之间的文本(非贪婪模式.*?
),如:
var string = 'some text "string 1" and "another string" etc';
var pattern = /".*?"/g;
var current;
while(current = pattern.exec(string))
console.log(current);

答案 1 :(得分:0)
这也有效:
var s = "\"some text \"string 1\" and \"another string\" etc\"" ""some text "string 1" and "another string" etc""
s.match(/(?!^)".*?"/g)
Result: [""string 1"", ""another string""]
在负面展望中发生的事情将与第一个报价不匹配,因为它在开头,导致所有其他报价匹配,忽略最后一个报价,因为它没有其他报价。这假设在第一次引用之前不会有任何空格。