匹配Beetwen括号与正则表达式(仅限于此)

时间:2017-02-22 05:01:16

标签: javascript regex

您好,感谢您的光临,

我有一个字符串 => "var string = Lets search for \"This film\" and \"This game\" ";

我想 => var result = ["This Film", "This game"];

如何 =>正则表达式。

目前我确实有一些东西:

"Lets search for \"This film\" and \"This game\" ".match(/"([^}]*)"/)

哪个回报我

[""This film" and "This game"", "This film" and "This game"]

但这并不是我想要的。

由于我真的与正则表达式混淆,(我知道这个人正在做什么,但没有正确的语法来修改它),有人可以帮我实现吗?

非常感谢

P.S:我确实在互联网上搜索过,但所有答案都有同样的问题。

2 个答案:

答案 0 :(得分:1)

您需要使用懒惰量词*?)而不是贪婪量词(*):

  

贪婪量词*:匹配尽可能多的字符。

     

懒惰量词:*?:匹配尽可能少的字符。

此外,您需要全局标志(g)才能匹配模式的多次出现。你的正则表达式应该是:

"Lets search for \"This film\" and \"This game\" ".match(/"([^}]*?)"/g)

您可能会发现这个问题很有趣:What do lazy and greedy mean in the context of regular expressions?

我建议使用Regex101来播放表达式,他们对量词和其他正则表达式也有很好的解释。

答案 1 :(得分:1)



var string = "Lets search for \"This film\" and \"This game\" ";
console.log(string);
console.log(string.match(/"([^"]*)"/g));




有关阅读和播放的更多信息,请点击regex101