Регулярное выражение для французских символов
Мне нужна функция или регулярное выражение для проверки строк, которые содержат буквенные символы (включая французские), знак минус (-), точку (.) И пробел (исключая все остальное)
Спасибо
10 ответов
/^[a-zàâçéèêëîïôûùüÿñæœ .-]*$/i
Использование /i
для нечувствительности к регистру, чтобы сделать вещи проще. Если вы не хотите разрешать пустые строки, измените *
в +
,
Упрощенное решение:
/^[a-zA-ZÀ-ÿ-. ]*$/
Объяснение:
^ Start of the string
[ ... ]* Zero or more of the following:
a-z lowercase alphabets
A-Z Uppercase alphabets
À-ÿ Accepts lowercase and uppercase characters including letters with an umlaut
- dashes
. periods
spaces
$ End of the string
Пытаться:
/^[\p{L}-. ]*$/u
Это говорит:
^ Start of the string
[ ... ]* Zero or more of the following:
\p{L} Unicode letter characters
- dashes
. periods
spaces
$ End of the string
/u Enable Unicode mode in PHP
Класс персонажа, который я использовал, выглядит следующим образом:
[\wÀ-Üà-øoù-ÿŒœ]
, Это охватывает немного больший набор символов, чем только французский, но исключает большую часть восточноевропейских и скандинавских диакритических знаков и букв, не относящихся к французскому языку. Я считаю это достойным компромиссом между краткостью и исключительностью.
Чтобы сопоставить / проверить полные предложения, я использую это выражение:[\w\s.,!?:;&#%’'"()«»À-Üà-øoù-ÿŒœ]
, который включает в себя знаки препинания и французские кавычки.
[\w .-]
должно хватить, но вам нужно иметь \w
рассмотреть локаль и / или перевести ее в режим Юникод, так \w
соответствует тому, что Unicode определяет как буквенно-цифровые символы. Как сделать это в PHP, вероятно, просто Google.
Эта строка регулярного выражения проходит через весь французский текст cirano de bergerac: (вам нужно будет удалить символы языка разметки http://www.gutenberg.org/files/1256/1256-8.txt
^([0-9A-Za-z\u00C0-\u017F\ ,.\;'\-()\s\:\!\?\"])+
Все французские и испанские акценты
/^[a-zA-ZàâäæáãåāèéêëęėēîïīįíìôōøõóòöœùûüūúÿçćčńñÀÂÄÆÁÃÅĀÈÉÊËĘĖĒÎÏĪĮÍÌÔŌØÕÓÒÖŒÙÛÜŪÚŸÇĆČŃÑ .-]*$/
/[A-Za-z-\.\s]/u
должен работать.. / U переключатель для кодировки UTF-8
Это может подойти:
/^[ a-zA-Z\xBF-\xFF\.-]+$/
Он позволяет добавить несколько дополнительных символов, например ÷, но он обрабатывает довольно много акцентированных символов.