匹配大括号内的引号内的文本

时间:2015-05-10 00:22:54

标签: regex

我有以下文字

{"inside1", "inside2"}, "bla", "bla"

我只想在双引号和大括号内提取文本,因此这种情况下的结果应该是“inside1”和“inside2”。

我正在尝试使用带有全局标志的{"(.*?)"},但它不起作用:(。

2 个答案:

答案 0 :(得分:1)

我认为你只能使用一个正则表达式。但是,您可以使用两个正则表达式来执行此操作。

您可以使用的第一个正则表达式是提取{}中的内容,以便您可以使用:

{(.*)}

然后,如果你有字符串:

{"inside1", "inside2", noquote}, "bla"

这将捕获:"inside1", "inside2", noquote

<强> 1st regex working demo

捕获此内容后,您可以将此第二个正则表达式用于上一个结果,如下所示:

"(.*?)"

这将捕获:inside1inside2

<强> 2nd regex working demo

答案 1 :(得分:0)

使用新的regex module,您可以将其与findall:

一起使用
(?:\G(?!\A)|{)[^"}]*"([^"]*)"

其中\G是最后一场比赛后的位置。

demo