字符串的正则表达式,看起来像PHP中的javascript对象

时间:2015-11-06 18:00:22

标签: php regex string

我们在php中有字符串,如下面两个例子:

{{'LANGUAGE_ID','String inclusive special chars (,/)'}}
{{'LANGUAGE_ID','String inclusive special chars (,/)','Another string inclusive special chars (,/)'}}

字符串始终由{{}}包围。在里面,我们有多个元素用逗号分隔,并用单引号括起来。第一个元素始终是单词\w。之后我们有一个未知数量的元素,可以是包含特殊字符的单词或句子。我们想要得到的是每个元素的内容(单引号之间的文本)。

只要我们知道字符串包含多少元素,我们就有了解决方案。

解决方案1.示例:{{'([\w]+)','([^\n\r']+)'}}

解决方案2.示例:{{'([\w]+)','([^\n\r']+)','([^\n\r']+)'}}

我们正在寻找适用于这两个示例的解决方案,甚至是一个包含三个或更多元素的示例。

我们有一个正则表达式在这里玩: http://regexr.com/3c58c

2 个答案:

答案 0 :(得分:2)

您可以使用\G

来使用此正则表达式
preg_match_all('/(?:{{|\G,)'([^']+)'(?=.*?}})/', $text, $matches);

print_r($matches);

RegEx Demo

答案 1 :(得分:0)

这个怎么样:

{{'([\w]+)',('([^\n\r']+)',*)*}}