[英]String validation in java using regex
我必須驗證一組字符串並對其進行處理。 可接受的格式為:
1/2
12/1/3
1/23/333/4
用於驗證的代碼是:
if (str.matches("(\\d+\\/|\\d+){2,4}")) {
// do some stuff
} else {
// do other stuff
}
但是它將匹配帶有或不帶有斜杠的任何整數,我想排除不帶有斜杠的整數。如何僅匹配有效模式?
看來您想查找number
帶有一個或多個 /number
number
(一個或多個數字的序列- \\d+
)。 如果是這種情況,那么您可以將正則表達式寫為
\\d+(/\\d+)+
你可以試試
(\d+/){1,3}\d+
digits followed by / one to three times----^^^^^^ ^^------followed by digit
樣例代碼:
System.out.println("1/23/333/4".matches("(\\d+/){1,3}\\d+")); // true
System.out.println("1/2".matches("(\\d+/){1,3}\\d+")); // true
System.out.println("12/1/3".matches("(\\d+/){1,3}\\d+")); // true
模式說明:
( group and capture to \1 (between 1 and 3 times):
\d+ digits (0-9) (1 or more times)
/ '/'
){1,3} end of \1
\d+ digits (0-9) (1 or more times )
\\b\\d+(/\\d+){1, 3}\\b
\\ b是單詞邊界。 這將匹配所有帶有1-3斜杠的標記,斜杠被數字包圍,而令牌被單詞邊界包圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.