Я искал и пробовал ниже RegExp, но не работал для моего требования. Пожалуйста, предоставьте PHP RegExp, который принимает по крайней мере одно буквенно-цифровое и необязательное подчеркивание или дефис, но подчеркивание или дефис не должны повторяться дважды подряд.
/^([a-z0-9]+-)*[a-z0-9]+$/i
Примеры форматов
- _test147
- контрольная работа
- _а
- тест_тест
- тест-тест_ и т. д.
2 ответа
Вы можете использовать это регулярное выражение в режиме игнорирования регистра:
^[-_]?[a-z\d]+(?:[_-][a-z\d]+)*[-_]?$
Сведения о регулярном выражении:
^
: Начать[-_]?
: соответствует необязательному_
или-
.[a-z\d]+
: совпадение 1+ буквенно-цифрового символа(?:
: начать группу без захвата <ул>[_-]
: соответствует_
или-
[a-z\d]+
: соответствует 1+ буквенно-цифровому символу
)*
: Завершить группу без захвата. Повторите эту группу 0 или более раз[-_]?
: соответствует необязательному _
или -
.$
: конец/^([-_]?[a-z0-9]+)+[-_]?$/i
Это повторяющаяся последовательность с необязательным дефисом или подчеркиванием, за которым следуют буквенно-цифровые символы, а затем допускается еще один необязательный дефис или подчеркивание в конце.
[-_]?
в повторяющейся группе потребуется гораздо больше шагов.
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.