kissarat
@kissarat
Node.js

Как распарсить строку name(one,two,three) в PHP?

Как из стоки name(one,two,three,...) регулярным выражениям получить значения one, two, three ?
Знаю в JavaScript это делается легко с помощью exec, но в PHP испытал трудности с регулярками. Или может здесь проще будет разобрать строку самостоятельно?
Но потом еще надо будет разбирать name(one,two,three,...)[one>1,two=hello] ...
  • Вопрос задан
  • 2483 просмотра
Пригласить эксперта
Ответы на вопрос 4
M03G
@M03G
А почему именно регуляркой? Если нужно просто разбить строку, воспользуйтесь explode с любым нужным разделителем.
Честно говоря, из Вашего сообщения не совсем понятно, какую структуру имет это "нечто", которое надо разбить. Если это строка, то как у её частей может быть значение?
Ответ написан
@angry_bender
PHP, JS
array_filter(preg_split("/(name\(|\)|,)/", "name(one,two,three)"));

Например так можно.
Ответ написан
Комментировать
alektive
@alektive
Можно воспользоваться "обрезанием". То есть откинуть скобки и сам параметр "name". Потом как сказано выше разбить строку, в вашем случае через запятую и закинуть в массив. Тут же ничего сложного.

То есть из этого - name(one,two,three,...)
Делаем вот это - one,two,three,...
Разделяем explode и кидаем в array
Ответ написан
Комментировать
OlegLazarenko
@OlegLazarenko
$str = "name(one,two,three)";
preg_match('/(\w+),(\w+),(\w+)/', $str, $res);
array_shift($res);
var_dump($res);


Вывод:
array (size=3)
  0 => string 'one' (length=3)
  1 => string 'two' (length=3)
  2 => string 'three' (length=5)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы