我正在寻找这种模式的一些正则表达式代码:
必须至少包含以下1个并匹配整个字符串.
只能包含字母字母(az AZ)......
和重音字母(áäàeta等).
我正在使用preg_match('/^([\p{L}]*)$/iu', $input),但\p{L}匹配所有unicode字母,包括中文.我只是想让英文字母字母以及它们的重音变体.
所以JohnDoe,Fübar,Lòrem,FírstNäme,Çákë都将是有效的投入,因为它们都含有至少1阿尔法字母和/或重音字母字母,整个字符串匹配.
带重音的字母本身就是 unicode 字符,与其不带重音的变体完全无关。人类观察者可能会看到它们彼此相关,但计算机无法通过将其与标准 ascii 集的字母字符进行比较来了解差异。实现此目的的一种方法是向正则表达式提供允许使用的字符的白名单。如果您不需要重音字符,另一种方法是使用像 Apache Lucene 这样的库(这是一个 Java 库,但我想我已经读过它可以在 PHP 中使用)将重音字符替换为其非重音变体正确的分析仪。
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |