У меня есть следующее регулярное выражение шаблон, который отлично работает:Проверка и сопрягать специально отформатированную строку
#^(.+?)=(.+?)$#D
Однако я хочу, чтобы продлить его, чтобы он поддерживает следующие примеры входов:
некоторые текст = более какой-то текст, что-то
некоторый текст = некоторые больше текста, что-то, что-то
некоторый текст = некоторые больше текста, так mething, что-то, что-то
Как вы можете видеть из приведенного выше примера входы с запятой (;
) символ используется в качестве разделителя и используется для того чтобы отделить текст (он находится между текстом).
Я думаю, что я могу использовать следующий шаблон регулярного выражения ниже - он будет работать только тогда, когда theres один, но не будет, если текст будет разделен точкой с запятой ... Я знаю, что я, возможно, могу добавить что-то вроде [;]*
, но я хочу, чтобы проверка была строгой, чтобы гарантировать, что она находится в этом формате (так что не может быть полуколоний, где бы они ни находились между текстом).
#^(.+?)=(.+?);(.+?)$#D
Если это поможет, я в настоящее время с помощью preg_match()
функции РНР (поэтому матчи могут быть использованы в array()
форме).
Я не ограничился использованием регулярных выражений, поскольку это был единственный метод, о котором я мог думать, поэтому я могу обратиться к другим методам или любому методу, который можно использовать рядом с этим (предоставление результатов может быть легко достигнуто как массив LOL).
Также я хотел бы отметить, что при написании этого (и щелкая по системе тегов) у меня появилась новость ... возможно, используя preg_match_all()
с рекурсивной функциональностью PCRE
может быть возможным решением?
Цените все ответы и благодарите за помощь.
Хмм не думал об этом, но обеспечил бы правильную форму? – user962026
Учитывая ваши примеры, он должен работать нормально. – Amber
Спасибо, я использовал explode() с комбинацией array_map ('trim', $ arr) и array_filter(), чтобы отсеять недопустимые записи. – user962026