簡體   English   中英

使用正則表達式在Java中進行字符串驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM