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