Регулярное выражение для французских символов

Мне нужна функция или регулярное выражение для проверки строк, которые содержат буквенные символы (включая французские), знак минус (-), точку (.) И пробел (исключая все остальное)

Спасибо

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ù-ÿŒœ], который включает в себя знаки препинания и французские кавычки.

Просто используйте следующий код:

     /[\u00C0-\u017F]/

[\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\.-]+$/

Он позволяет добавить несколько дополнительных символов, например ÷, но он обрабатывает довольно много акцентированных символов.

Другие вопросы по тегам