#php #regex #pcre
#php #регулярное выражение #pcre
Вопрос:
Я хочу регулярное выражение, которое допускает только буквенно-цифровые символы, подчеркивание и определенный заполнитель внутри фигурных скобок.
Допустимые примеры:
test{placeholder}
test_{placeholder}
test_123_{placeholder}
test
test_123
test123
{placeholder}_test
test{placeholder}test
And any combination of above.
Это то, что я придумал:
[^-A-Za-z0-9_]|^{placeholder}
Насколько я понимаю, это:
[^-A-Za-z0-9_]
— Не допускайте никаких других символов, кроме a-z 0-9 и подчеркивания.
|^{placeholder}
— Или все, что не говорит {заполнитель}
Но это не работает, и я не уверен, почему.
Вот демо
Пожалуйста, помогите.
Комментарии:
1. Странно, что вы хотите разрешить буквенно-цифровые символы и подчеркивание, а затем написать регулярное выражение, в котором вы объясняете, что оно их не допускает.
Ответ №1:
Вы можете использовать
^(?:[A-Za-z0-9_]|{placeholder}) $
Подробные сведения
^
— начало строки(?:
— начало группы без захвата:[A-Za-z0-9_]
— символ слова: буква, цифра,_
|
— или{placeholder}
— определенная подстрока
)
— конец группы, повторить 1 или более раз$
— конец строки.
Смотрите демонстрацию регулярных выражений и график регулярных выражений:
Комментарии:
1. Спасибо, это именно то, что мне было нужно!