我对正则表达式不是很好,但我想只匹配一个人的名字。 因此,每个单词都需要包含至少一个元音,这样才有效。
我还想省略像<>()[]之类的奇怪字符。到目前为止我得到的是这样的:
([^<>\(\)\[\]\\\/@].+)
哪个匹配如下:
John Johnson
我不知道如何检查每个单词中是否有元音。
答案 0 :(得分:3)
验证一个人的姓名通常只能验证他们提供的名称。试图确保它是一个真正的名称永远不是一个好主意,因为有人总会有一个不同规则的名称。
除此之外,不再进行验证。为什么呢?
答案 1 :(得分:0)
由于尝试验证名称是不可取的(出于已经提到的原因以及更多!),以下正则表达式应该按照您的要求执行(一系列字母和空格至少有一个元音):
(?=\b[a-zA-Z ]*?[aeiouAEIOU][a-zA-Z ]*\b)\b[a-zA-Z ]*\b
我可以为你分解,但我不建议使用它:D