我制作了这个正则表达式来检查用户全名。但它也接受用户名最后一个位置的数字和特殊字符。
案例:
- Shivkant Dohaliya - 正确
- Shivkant Dohaliya1 - 正确
- Shivkant Dohaliya@ - 正确
- Shivkant Dohaliya!1- FALSE
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/