我想使用Java验证标识格式。
示例:UWU/CST/14/0015
或UWU/IIT/14/0025
此处需要UWU,其中一个CST或IIT必须存在,否则无效。之后,它可以有任意两位数字,然后在最后一节中至少有四位数字。请帮我解决这个问题。
package validate2;
import java.util.*;
public class Validate2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner a=new Scanner(System.in);
String l=a.next();
boolean x=l.matches("^uwu\\/\\w\\w\\w\\/\\d\\d\\/\\d\\d\\d\\d");
if (x == false) {
//JOptionPane.showMessageDialog(rootPane, "Enter a valid serviceNO");
System.out.println("NO");
//return false;
} else {
System.out.println("YES");
//return true;
}
}
}
答案 0 :(得分:3)
正则表达式:
m
^UWU\/(CST|IIT)\/\d{2}\/\d{4,}$
UWU
或CST
IIT
\d{2}
希望这有帮助!
答案 1 :(得分:2)
您可以尝试使用此正则表达式(?i)UWU\/(CST|IIT)/\d{2}\/\d{4}
:
String str = "UWU/CST/14/0015";
String regex = "(?i)UWU\\/(CST|IIT)/\\d{2}\\/\\d{4}";
System.out.println(str.matches(regex));
(?i)
:将接受任何大写或小写UWU
:从UWU
(CST|IIT)
:其次是CST或IIT \d{2}
:接着是2次降级\d{4}
:接着是4次降价答案 2 :(得分:1)
而不是这个长正则表达式^uwu\\/\\w\\w\\w\\/\\d\\d\\/\\d\\d\\d\\d
这是最简单的一个。
正则表达式: ^UWU\/(?:CST|IIT)\/\d+\/\d+$
说明:以文字UWU
开头,然后是/
,后跟CST
或IIT
,后跟/
{{ 1}}然后multiple digits
然后/
。
要限制不使用数字,请使用multiple digits
,其中{n,m}
为最小值,n
为最大值
<强> Regex101 Demo 强>