正则表达式在字符串

时间:2017-01-19 20:12:45

标签: javascript regex

我试图获得一个正则表达式,它会在双引号字符串中找到双引号字符串。例如:

"一些文字"字符串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中实现正则表达式的问题。

2 个答案:

答案 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""]

在负面展望中发生的事情将与第一个报价不匹配,因为它在开头,导致所有其他报价匹配,忽略最后一个报价,因为它没有其他报价。这假设在第一次引用之前不会有任何空格。