Java、Regex:为firstname添加umlaut和其他德语字符
我想用Regex验证用户发送的名字。我发现名字有多个表达式,但我还想在其中添加德语字符,如äöüß
和法语字符à À è È é É ù Ù ì Ì ò Ò ñ Ñ
。我尝试了SOhere建议的正则表达式求值器,但没有帮助。无论我何时制作一个额外的方括号,它都会告诉我Your regular expression does not match the subject string.
。我做错了什么
当前正则表达式模式:
^([A-Z][a-z]*((\s)))+[A-Z][a-z][äöüß]*$
多谢各位
# 1 楼答案
It is not a good idea to restrict people's names too much,我建议使用一个相当通用的正则表达式:
此正则表达式将匹配仅由1个或多个Unicode字母、变音符号、空格、撇号或连字符组成的字符串
如果需要更严格的检查,例如空格可能只出现在字符串内部,并且只有在不连续时,才使用分组:
# 2 楼答案
我同意Wiktor先前的回答
但要回答为什么您的正则表达式不起作用:
您希望大写字母后跟0个或多个字母和空格,然后是另一个单词。另一个词是1个cap。字母,1个字母,然后是0个或更多字母。我不知道有什么合适的名字。所有这些特殊字符应与字母在同一[]中
此外,不允许使用连字符的名称
所以你的正则表达式看起来更像这样: