用于字符串的Regex表达式,这些字符串看起来像PHP中的javascript对象


Regex Expression for strings which look like javascript objects in PHP

我们在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']+)'}}

我们正在寻找一种既适用于两个示例,也适用于具有三个或更多元素的示例的解决方案。

我们在这里有一个regex共享:http://regexr.com/3c58c

您可以使用'G:使用此正则表达式

preg_match_all('/(?:{{|'G,)'([^']+)'(?=.*?}})/', $text, $matches);
print_r($matches);

RegEx演示

这个怎么样:

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