刚刚开始探索正则表达式的“奇迹”。作为一个从反复试验中学习的人,我真的很挣扎,因为我的试验引发了不成比例的错误......我的实验是在 PHP 中使用 ereg() 进行的。
反正。我分别处理名字和姓氏,但现在使用相同的正则表达式。到目前为止我有:
^[A-Z][a-zA-Z]+$
以大写字母开头且其余部分仅包含字母(大写或非大写)的任何长度字符串。但我失败的地方在于处理几乎在任何地方都可能发生的特殊情况。
- 带连字符的名称 (Worthington-Smythe)
- 带撇号的名字 (D'Angelo)
- 带空格的名字(Van der Humpton)——中间的大写字母可能需要也可能不需要,在这个阶段远远超出了我的兴趣。
- 联名 (Ben & Jerry)
也许还有其他我没有想到的名字,但我怀疑如果我能解决这个问题,我可以添加它。我很确定在某些情况下,一个名字会出现不止一种情况。
所以,我认为底线是让我的正则表达式也接受空格、连字符、与号和撇号 - 但在技术上不正确的名称的开头或结尾。
这个正则表达式对我来说非常完美。
^([ \u00c0-\u01ffa-zA-Z'\-])+$
它在使用 preg_match() 的 php 环境中工作正常,但并非在所有地方都工作。
它匹配Jérémie O'Co-nor
所以我认为它匹配所有 UTF-8 名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)