法语字符的正则表达式

时间:2009-12-17 14:19:29

标签: php regex

我需要一个函数或正则表达式来验证包含字母字符(包括法语字符),减号( - ),点(。)和空格(不包括其他所有内容)的字符串

谢谢

9 个答案:

答案 0 :(得分:17)

/^[a-zàâçéèêëîïôûùüÿñæœ .-]*$/i

使用/i不区分大小写以简化操作。如果您不想允许空字符串,请将*更改为+

答案 1 :(得分:5)

尝试:

/^[\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

答案 2 :(得分:4)

简化解决方案:

/^[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

答案 3 :(得分:1)

[\w .-]应该足够了,但是您需要\w考虑语言环境和/或将其置于Unicode模式,因此\w匹配Unicode定义为字母数字字符的内容。如何在PHP中做到这一点可能只是谷歌之外。

答案 4 :(得分:1)

我一直在使用的字符类如下:

[\wÀ-Üà-øoù-ÿŒœ]。它所覆盖的字符集仅比法语略大,但不包括东欧和斯堪的纳维亚的变音符号和与法语无关的字母。我发现这是简洁与排他性之间的不错折衷。

要匹配/验证完整句子,我使用以下表达式: [\w\s.,!?:;&#%’'"()«»À-Üà-øoù-ÿŒœ],其中包括标点符号和法式引号。

答案 5 :(得分:0)

这行正则表达式通过所有cyrano de bergerac法语文本: (您需要删除标记语言字符 http://www.gutenberg.org/files/1256/1256-8.txt

^([0-9A-Za-z\u00C0-\u017F\ ,.\;'\-()\s\:\!\?\"])+

答案 6 :(得分:0)

只需使用以下代码:

     /[\u00C0-\u017F]/

答案 7 :(得分:-1)

这可能适合:

/^[ a-zA-Z\xBF-\xFF\.-]+$/

它允许一些额外的字符,如÷,但它处理相当多的重音字符。

答案 8 :(得分:-1)

/[A-Za-z-\.\s]/u应该工作.. / u开关用于UTF-8编码