У меня есть, например, следующая строка:
{WIDGET_TEST('abc','456')}
Я хотел бы иметь возможность использовать preg_match_all для возврата массива разделенных запятыми аргументов.
Может ли кто-нибудь помочь мне с регулярным выражением, которое мне нужно?
Я пробовал и возвращает следующий запрос (a,b)
:
preg_match_all('/\([a-zA-Z0-9\',]+\)/', '{WIDGET_TEST(a,b)}', $arguments);
Но я остался сражаться, чтобы получить этот результат как массив, и регулярное выражение ломается, когда я представляю апострофы?
EDIT Используя следующее:
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'. Если говорить грубо, он вернет новый результат, когда строка выйдет из этого макупа.