java - 正则表达式(JAVA)

标签 java

我制作了这个正则表达式来检查用户全名。但它也接受用户名最后一个位置的数字和特殊字符。

案例:

  1. Shivkant Dohaliya - 正确
  2. Shivkant Dohaliya1 - 正确
  3. Shivkant Dohaliya@ - 正确
  4. Shivkant Dohaliya!1- FALSE
  5. Shivkant Dohaliya1#- FALSE

    public void usern()
    {                   
        username="^([a-zA-Z]+[ a-zA-Z]+)$";                 
        pattern=Pattern.compile(username);                                     
        matcher=pattern.matcher(e1.getUname());
        if(matcher.matches()) {                 
           e1.textField1.setBorder(BorderFactory.createLineBorder(Color.GREEN));
        } else {
            e1.textField1.setBorder(BorderFactory.createLineBorder(Color.RED));
        }
    }           
    

我希望案例 2 和 3 也应该显示红色边框。

最佳答案

也许你应该使用这个模式:

username="^((?:[a-Z][a-Z]+))(\s)((?:[a-Z][a-Z]+))$";

username="^(\w+)(\s)(\w+)$";

仅测试用空格分隔的两个单词..

关于java - 正则表达式(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705249/

相关文章:

java - 是否可以加载类而不加载引用的类/导入?

java - Google Vision APi 标签降低了标签百分比

java - 当我为已经实例化的类调用 Class.getInstance 时会发生什么?

java - 追加到数组与写入文件

java - 为什么我的 Jlabels 或 Jpanels 没有显示?

java - 带有局部变量的 Mockito

java - Java 中的术语 "canonical form"或 "canonical representation"是什么意思?

java - JVM GC 是否会在引用比较过程中移动对象,导致即使双方都引用同一个对象也无法进行比较?

java - 如何在 Antlr-4 词法分析器规则的操作中获取 token 属性

java - 配置 nutch regex-normalize.xml