0

我在网上搜索了所有正则表达式 exp,但找到了任何符合我需求的东西。

允许单词之间有空格的正则表达式

允许字母数字、最多一个空格等的正则表达式

正则表达式,除空格或冒号外的所有非字母数字字符

在非上述情况下,我得到了解决方案:

我需要检查 Nam 是否有效
=> 每个单词的第一个字母应该是大写
=> 每个单词的所有字母都应该很小
=> 名称应该只有 alpha char AZ 和 az
=> 第一个单词的长度应该是 min 3
= > 名称之间不得有超过一个空格

例如:
苏杰 => 假苏杰 =
> 真

苏杰 U => 假
苏杰 U => 真

苏杰 U n => 假
苏杰 UN => 真

Sujay U => 假
Sujay UN => 假
Sujay Uls => 真

Sujay9 => 假
Su => 假
Su U => 假
Sujay UN => 真
Sujay Uls Nat=> 真

|*| 使用的检查功能:

static boolean chkNamVldFnc(String namVar)
{
    String namRegExpVar = "[A-Z][A-Za-z ]{2,}";

    Pattern pVar = Pattern.compile(namRegExpVar);
    Matcher mVar = pVar.matcher(namVar);
    return mVar.matches();
}

|*| 尝试 1:

String namRegExpVar = "[A-Z][A-Za-z ]{2,}";

|*| 尝试 2:

String namRegExpVar = "[A-Z][a-z]{2,}+//s[A-Z][a-z]{2,}";

|*| 尝试 3:

String NamRegExpVar = "[A-Z][a-z]{2,}||[A-Z][a-z]{2,}+//s[A-Z][a-z]";

请帮助我正确的常规 Exp :

我也想知道为什么我们要以 ^ 开头 Reg Exp 并以 $ 结尾

4

1 回答 1

2

尝试:

^[A-Z][a-z]{2,}(?: [A-Z][a-z]*)*$
  • 名字必须以字母 AZ 开头,后跟至少 2 个字母 az
  • 可选地,名字后面可以有名字,用空格分隔并以字母 AZ 开头,后跟可选字母 az
于 2017-06-07T19:30:04.013 回答