PHP preg_match文本无法正常工作

时间:2018-05-15 15:06:02

标签: php

这个PHP代码没有捕获数字字符或符号。

Windows Service (.NET Framework)

例如,结果应该是Geronimo。如果输入了ge5on * mo,那就是返回的内容。

有什么建议吗?

1 个答案:

答案 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) $