Как сделать регулярное выражение для сопоставления строки, которая начинается с 0-9 или az с ударением и должна принимать только этот специальный символ - _ 'между словами? - PullRequest
0 голосов
/ 07 апреля 2020

Мой шаблон должен соответствовать строке, которая:

  • Может начинаться с цифры
  • Может начинаться с букв с акцентом или без акцентов
  • Невозможно начать с пробелами
  • Не может начинаться со специальных символов
  • Разрешить пробелы между словами
  • Не принимать специальные символы, кроме: - _ '

Мой текущий шаблон: ^[^_\W][\p{L}\s0-9À-ÖØ-öø-ÿ.'-]+$

Допустимые примеры:

Цитата

Жуан Антонио

Жуан-Антонио

Компания Жуана

Питер Мюллер

Франсуа Олланд

Патрик О'Брайан

Сильвана Кох-Мехрин

Неверные примеры:

Компания N@me

100% Компания

\ Компания

\ s Компания

_Blockquote

Пожалуйста, помогите мне!

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Мой лучший результат:

/^[^_\W][\p{L}\s0-9À-ÖØ-öø-ÿ.'-]+$/gi

Тест: https://regexr.com/521r2

0 голосов
/ 08 апреля 2020

Я думаю, что требования не слишком ясны, но основаны на ваших примерах:

^[a-zA-ZÀ-ÖØ-öø-ÿ][ '_-a-zA-ZÀ-ÖØ-öø-ÿ]+$


^                        = beginning of line
$                        = end of line
[a-zA-ZÀ-ÖØ-öø-ÿ]        = matches all these characters specified including one with accents
[ '_-a-zA-ZÀ-ÖØ-öø-ÿ]    = same as above except it includes the quote, blank space, underscore
+                        = one or more (greedy)

См. Это для более подробной информации и примеров ссылка

Best.

0 голосов
/ 07 апреля 2020

Первая буква:

  • Начните с цифры, буквы
  • Исключите акценты и специальные символы

[^\W_]

Остальное текста:

  • Включите цифры, буквы и акценты
  • Включите _, -, ' и

[0-9] & [A-Za-zÀ-ÖØ-öø-ÿ] & [_\-\' ]

Вот вы:

^[^\W_][0-9A-Za-zÀ-ÖØ-öø-ÿ_\-\' ]+$

См. Этот вопрос

Когда вам приходится иметь дело со сложным Regex, используйте Regexr '!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...