regex — анализ CSV в массив

Я сталкиваюсь с проблемой, когда пытаюсь разобрать строку, содержащую FSM, определенную как:

{{states},{symbols}, {transitions}, starting_symbol, {set of finishing states}}

пример:

{{start, mid, end}, {'a', 'b'}, { start 'a' -> end}, start, {end}}

В отличие от написания парсера здесь, я хотел бы проанализировать это с помощью регулярных выражений.

Моя проблема заключается в понимании соответствия групп регулярных выражений и как разбить строку, такую ​​как "start, mid, end" в массив [ "start", "mid", "end" ] (при условии, что разделитель ,).

Я понимаю, что использование встроенных функций CSV может быть лучшей идеей, но пример немного сложнее (хотя для простоты, давайте предположим, что каждому члену набора может соответствовать \w,

Любая помощь будет оценена.

0

Решение

Предполагая, что я правильно понял, что вам нужно, это должно сработать:

<?php

$string = "{{start, mid, end}, {'a', 'b'}, { start 'a' -> end}, start, {end}}";

preg_match( "#\{\{(.*?)\}#", $string, $matches );

$parts = split(',', $matches[1] );

echo '<pre>';
print_r( $parts );
echo '</pre>';
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]