Для справки, это регулярное выражение тестер Я использую:
http://www.rsyslog.com/regex/регулярное выражение несколько соответствий
Как я могу изменить это регулярное выражение:
[^;]+
получить несколько суб-матчей за следующая тестовая строка:
;first;second;third;fourth;fifth and sixth;seventh;
Я в настоящее время только получаю один из следующих результатов:
first
В основном я хочу, чтобы каждый суб-матч состоит из содержания между ;
символов, я надеюсь на список суб-матч, как это:
first
second
third
fourth
fifth and sixth
seventh
Обычно вам нужно использовать модификатор для соответствия нескольким экземплярам. На многих языках это 'g'. В PHP вы в основном используете 'preg_match_all()' вместо 'preg_match()'. Я думаю, что ответ на вашу проблему должен быть где-то в документах. – HamZa
@HamZa Я считаю, что использую это - заметьте на веб-сайте связанного тестера поле «Submatch to Use» по умолчанию «0 (All)». Это не одно и то же? – dtmland
Это относится к группе 0. Попробуйте, например, это регулярное выражение '([^;]) [^;] +' и проверить группу 1. Вы заметите, что вывод 'f' из' first'. Моя интуиция говорит, что нынешнее поведение по дизайну. Хотя я не могу это сделать ... – HamZa