次の名前について、Java で正規表現を書くのを手伝う必要があります。
name
name`s
name name
name-name
name`s name
name`s-name
次の正規表現を書き込もうとしましたが、うまくいきません:(
String nameRegex = "[A-Za-z]+(-|,|\\s)?[A-Za-z]*";
次の関数を書きます
public static boolean validateName(String val) {
logger.info("in validate number");
String numberRegex = "^[A-Za-z]+(-\\s)?[A-Za-z]+$";
if (val.matches(numberRegex)) {
logger.info("in validate name of method validate");
return true;
} else {
logger.info("in else of method validate");
return false;
}
}
その検証は次のとおりです。
- name false それは true である必要があります
- 123 真偽 であるべき
- abc022 true それは false であるべきです
- abc dsf 真
- abc-dsf true
- abc'-dsf true それは false であるべきです
私の与えられたパターンは満足していません。
このパターンの"^\p{L}+(?:[-,\s`]\p{L}+)*$"
終了名をスペースなしで使用すると、false が返されます。数字を含む名前も受け付けています.eg abc123