我需要修改正則表達式以允許所有標準字符,法語字符,空格和短劃線(連字符),但一次只能有一個。法語名稱的Java正則表達式
我有現在的問題是:
import java.util.regex.Pattern;
public class FrenchRegEx {
static final String NAME_PATTERN = "[\u00C0-\u017Fa-zA-Z-' ]+";
public static void main(String[] args) {
String name;
//name = "Jean Luc"; // allowed
//name = "Jean-Luc"; // allowed
//name = "Jean-Luc-Marie"; // allowed
name = "Jean--Luc"; // NOT allowed
if (!Pattern.matches(NAME_PATTERN, name)) {
System.out.println("ERROR!");
} else System.out.println("OK!");
}
}
,它允許「讓 - 呂克」作爲名稱,這是不允許的。
對此有何幫助? 謝謝。
''\ u00C0- \ u017Fa-zA-Z]([ - '] [\ u00C0- \ u017Fa-zA-Z])'' – Lothar
'\ u00C0- \ u017F'範圍內的大部分字母aren不會用法語。 –
強制鏈接:[Falsehoods Programmers Believe About Names](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)。 –