У меня есть следующий код, и я пытаюсь узнать, действительна ли строка в соответствии с регулярным выражением. Я пытаюсь проверить только строки, которые следуют следующей последовательности.Регулярное выражение с дополнительными |
lettersOrNumbersAndunderDashes=lettersOrNumbersAndUnderdashes
Но эта последовательность может повторяться, если имеется вертикальная полоса.
Например parameter1=value1|parameter2=value2|parameterN=valueN
if (preg_match("/((^[A-Za-z0-9_]+=[A-Za-z0-9_]+)\|?)/m", "perPd_asd=as_3_4d|asdas=asdasd"))
return 'Valid';
return 'Invalid';
Я думаю, что я что-то отсутствует или здание неправильное регулярное выражение.
Первая строка содержит только один '='. https://regex101.com/r/yZ4qE2/1 Также '[A-Za-z0-9_]' может быть '\ w'. – chris85
Может ли быть немного более конкретным в этом вопросе? Я довольно новичок в regex –
Ваше выражение говорит 'stuff', затем' = 's then' stuff'. Ваша первая строка соответствует этому, потому что есть один '='. Ваша секунда останавливается после первого '='. (моя версия regex101 инвертирована, потому что я начал назад). – chris85