我想驗證用戶使用正則表達式發送的名字。我發現了多個名字的表達式,但我也想添加德文字符,如äöüß
和法語字符à À è È é É ù Ù ì Ì ò Ò ñ Ñ
。我嘗試了SO here建議的正則表達式評估器,但這並沒有幫助。無論如何,我會做一個額外的方括號,它會告訴我Your regular expression does not match the subject string.
。我究竟做錯了什麼?Java,正則表達式:爲名字添加變音符號和其他德語字符
當前正則表達式:
^([A-Z][a-z]*((\s)))+[A-Z][a-z][äöüß]*$
謝謝。
不要限制名字那麼難。我寧願提出一個非常通用的方法:'(?U)[\ p {L} \ p {M} \ s' - ] +',用'String#matches()'來使用它。稍微複雜一點:'(?U)[\ p {L} \ p {M}' - ] +(?:\ s [\ p {L} \ p {M}' - ] +)?' '(?U)[\ p {L} \ p {M}] +(?:[\ s' - ] [\ p {L} \ p {M}] +)*'等等 –
@WiktorStribiżew:你能解釋一下你發佈的正則表達式嗎?謝謝。 –
'\ p {L}' - 任何Unicode字母。 '\ p {M}' - 任何變音符號。 '\ s' - 空格,''''和'-'都是單引號和'-'。 –