Я пытаюсь написать регулярное выражение со следующими требованиями:
(1) не разрешать #
(2)
(3) не разрешить \ t (tab)
(3) не допускать множественные пробелы (одно пробел в порядке)
Вот я пробовал:
^[^#&\t\s+]*$
Однако я не могу получить свой результат, как хочу. Что я делаю не так?
Кто-нибудь может мне помочь?
Это будет работать во многих вариантах регулярных выражений (включая PCRE и JavaScript):
^(?!.* )[^#&\t]*$
Во-первых, сделайте негативный прогноз, чтобы убедиться, что нет двух пробелов, а затем совпадают ноль или более символов, которые не являются #
, &
или \t
.
Regex101 Протестировано
Перерыв задачи в базовое выражение для символов, которые разрешены, плюс негативный взгляд вперед, чтобы начать для утверждения «нет двойных пространств»:
^(?!.* )[^#&\t]*$