PHP preg_match_all:提取逗号分隔列表
例如,我有以下字符串:PHP preg_match_all:提取逗号分隔列表,php,regex,Php,Regex,例如,我有以下字符串: {WIDGET_TEST('abc','456')} 我希望能够使用preg_match_all返回逗号分隔的参数数组 有人能帮我找到我需要的正则表达式吗 我已经尝试过了,下面的查询返回(a,b): 但是我要努力把这个结果作为一个数组,当我引入撇号时,正则表达式就失效了 编辑 使用以下命令: preg_match_all('/(\'[a-zA-Z0-9,]+\')/', '{WIDGET_TEST('variable1','b')}', $arguments); 我得
{WIDGET_TEST('abc','456')}
我希望能够使用preg_match_all返回逗号分隔的参数数组
有人能帮我找到我需要的正则表达式吗
我已经尝试过了,下面的查询返回(a,b)
:
但是我要努力把这个结果作为一个数组,当我引入撇号时,正则表达式就失效了
编辑
使用以下命令:
preg_match_all('/(\'[a-zA-Z0-9,]+\')/', '{WIDGET_TEST('variable1','b')}', $arguments);
我得到:
array
0 =>
array
0 => string ''variable1'' (length=11)
1 => string ''b'' (length=3)
1 =>
array
0 => string ''variable1'' (length=11)
1 => string ''b'' (length=3)
因此,相信我已经做到了一部分…我认为如果您尝试以下正则表达式,它应该可以满足您的需要:
preg_match_all('/([a-zA-Z0-9_]+)/', '{WIDGET_TEST(\'variable1\', \'b\')}', $classname);
它应该从输入字符串返回由“abcdEDFGHJ123”构造的字符串。坦率地说,当字符串从此组合中断开时,它将返回一个新结果。由于语法的复杂性,如果没有诸如unescaped
、
内单引号等警告,这无法在单个正则表达式中可靠地解析。我建议删减并包括括号,然后分别解析参数。谢谢,随着我的进步,我已经更新了我的答案。。。
preg_match_all('/([a-zA-Z0-9_]+)/', '{WIDGET_TEST(\'variable1\', \'b\')}', $classname);