我们在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
答案 0 :(得分:2)
您可以使用\G
:
preg_match_all('/(?:{{|\G,)'([^']+)'(?=.*?}})/', $text, $matches);
print_r($matches);
答案 1 :(得分:0)
这个怎么样:
{{'([\w]+)',('([^\n\r']+)',*)*}}