这个PHP代码没有捕获数字字符或符号。
Windows Service (.NET Framework)
例如,结果应该是Geronimo。如果输入了ge5on * mo,那就是返回的内容。
有什么建议吗?
答案 0 :(得分:0)
嗯,您的示例中没有完整的测试用例。所以我会试着在黑暗中盲目地走路。起初你的表达是有缺陷的,因为它可以捕获没有任何名称的空白空间。第二 - 它没有捕获unicode字符。我会从这样的表达式开始进行名称捕获:
^(?:\p{Lu}\p{Ll}+[-\h]?){1,}$
说明:
^(?:
\p{Lu} // first letter in name must be in upper-case
\p{Ll}+ // after that goes at least 1 non-upper case letter
[-\h]? // we allow separators between names
){1,} // human can have multiple names (at least 1)
$