文字列に文字(アクセントを含む)、ハイフン、アポストロフィ、および単一スペース以外の文字が含まれている場合、falseを返す式を作成するにはどうすればよいですか?「Влади́мирПу́тинと豊田章男はどうですか?」名前とは何かを判断しようとするのはばかげていると思いますが、これは教育目的のみです。
また、英語の名前で一般的に見られる他の記号はありますか?
あなたはこれを試すことができます:
private static final Pattern namePattern =
Pattern.compile("^[-' \\p{L}\\p{M}]+$");
public static boolean isValidName(String text) {
return namePattern.matcher(text).matches()
&& text.indexOf(" ") < 0
&& !text.startsWith(" ") && !text.endsWith(" ");
}
単純なグーグル検索はあなたが望むかもしれないようにあなたにフィルターであなたにjava正規表現を与えるでしょう。しかし、有効な名前を取得するためにフィルター機能の一部となる条件を知ることが質問の場合は、ここで素晴らしい議論があります。人々の名前に使用できるすべての文字は何ですか?