我想根据以下格式验证学生ID:SLIOP-S-001或
SLIOP-WS-1004。
我尝试了以下代码,但无法正常工作。有人可以协助我找到代码中的错误吗?谢谢。
private void studentidKeyTyped(java.awt.event.KeyEvent evt) {
char s=evt.getKeyChar();
String sid = "^[SLIOP]+[-]+[S||WS]+[-]+[0-9]{6}";
Pattern pattern = Pattern.compile(sid);
Matcher matcher = pattern.matcher(String.valueOf(s));
if (!matcher.matches()) {
evt.consume();
} else {
JOptionPane.showMessageDialog(null,"Valid ID");
}
}
最佳答案
您的regex确实不正确以匹配您的输入
这是它的样子
String sid = "^SLIOP-(S|WS)-(\\d)+$";
^
:字符串的开头SLIOP-
:暂时匹配SLIOP-
(S|WS)
:匹配S
或WS
之一-
:暂时匹配-
(\\d)+
:连续查找多个数字$
:字符串结尾