您好,感谢您的光临,
我有一个字符串 => "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:我确实在互联网上搜索过,但所有答案都有同样的问题。答案 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