10個你應該知道的Java正則表達式的例子

 正則表達式是一個編程的藝術,很難調試,學習和理解,但強大的功能,仍吸引很多開發者編寫正則表達式。讓咱們探索一下下面10個實際應用中的正則表達式。正則表達式

1. 用戶名正則表達式模式
^[a-z0-9_-]{3,15}$
^                         # 行開始
  [a-z0-9_-]              # 匹配列表中的字符,a-z,0–9,下劃線,連字符
            {3,15}        # 長度至少3個字符,最大長度爲15
$                         # 行結束
編程

2. 密碼正則表達式模式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
(                        # 組開始
    (?=.*\d)             # 必須包含一個數字 0-9
    (?=.*[a-z])          # 必須包含一個小寫字符
    (?=.*[A-Z])          # 必須包含一個大寫字符
    (?=.*[@#$%])         # 必須包含一個列表中的特殊字符"@#$%"
                .        # 檢查全部字符串與前面的條件的匹配
                 {6,20}  # 長度至少爲6個字符,最大長度爲20
)                        # 組結束
ide

3. 16進制顏色代碼正則表達式模式
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
^                       # 行開始
 #                      #   必須包含一個"#"符號
  (                     #   組#1開始
   [A-Fa-f0-9]{6}       #     列表中的任意字符串,長度爲6
   |                    #     ..或者
   [A-Fa-f0-9]{3}       #     列表中的任意字符串,長度爲3
  )                     #   組#1結束
$                       # 行結束
學習

4. Email 正則表達式模式
^[_A-Za-z0-9-]+(
\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
^                            # 行開始
  [_A-Za-z0-9-]+             #   必須以中括號中的字符爲起始字符[],必須包含一個或多個(+)
  (                          #   組#1開始
   
\\.[_A-Za-z0-9-]+        #     接下來是一個點"."和中括號內的字符[],必須包含一個或者多個(+)
  )*                         #   組#1結束, 這個組是可選的(*)
    @                        #     必須包含一個"@"符號
     [A-Za-z0-9]+            #       接下來是中括號內的字符[],必須包含一個或者多個(+)
      (                      #         組 #2開始 – 一級TLD檢查
      
\\.[A-Za-z0-9]+       #           接下來是一個點"."和中括號內的字符[],必須包含一個或者多個(+)
      )*                     #         組#2結束,這個組是可選的(*)
      (                      #         組#3開始 – 二級TLD檢查
      
\\.[A-Za-z]{2,}       #           接下來是一個點"."和中括號內的字符[], 最小長度爲2
      )                      #         組#3結束
$                            # 行結束
spa

5. 圖像文件擴展名正則表達式模式
([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
(                         # 組#1開始
 [^\s]+                   #   必須包含一個或更多的任意字符(除了空格)
       (                  #     組#2開始
        \.                #       接下來是一個點"."
         (?i)             #       忽略後邊字符的大小寫檢查
             (            #         組#3開始
              jpg         #           包含字符"jpg"
              |           #           ..或者
              png         #           包含字符"png"
              |           #           .. 或者
              gif         #           包含字符"gif"
              |           #           .. 或者
              bmp         #           包含字符"bmp"
             )            #         組#3結束
       )                  #     組#2結束
 $                        #   字符串的結束
)                         # 組#1結束
調試

6. IP地址正則表達式模式
^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
^                  # 行開始
 (                 #   組#1開始
  [01]?\\d\\d?     #     能夠是1到2個數字. 若是出現3個數字, 必須以0或者1開始
                   #     例如 ([0-9], [0-9][0-9],[0-1][0-9][0-9])
    |              #     ...或者
  2[0-4]\\d        #     以2開始, 緊跟着是0-4,而且以任意數字結尾(2[0-4][0-9])
   |               #     ...或者
  25[0-5]          #     以2開始, 緊跟着是5,而且以0-5結尾 (25[0-5])
 )                 #   組#1結束
  \.               #   接下來是點"."
....               #   重複3次 (3x)
$                  # 行結束
開發

7. 時間格式正則表達式模式
12-小時制時間正則表達式模式
(1[012]|[1-9]):[0-5][0-9](
\\s)?(?i)(am|pm)
(                                  # 組#1開始
 1[012]                            #   以10, 11, 12開始
 |                                 #   或者
 [1-9]                             #   以1,2,...9開始
)                                  # 組#1結束
 :                                 #   接下來是一個冒號 (:)
  [0-5][0-9]                       #     接下來是0..5和0..9,意思是00到59
            (
\\s)?                 #       接下來是一個空格(可選)
                  (?i)             #         下面的檢查不區分大小寫
                      (am|pm)      #           接下來是AM或者PM24小時制時間正則表達式模式
([01]?[0-9]|2[0-3]):[0-5][0-9]
(                                  # 組#1開始
 [01]?[0-9]                        #   以0-9,1-9,00-09,10-19開始
 |                                 #   或者
 2[0-3]                            #   以20-23開始
)                                  # 組#1結束
 :                                 #   接下來是一個冒號(:)
  [0-5][0-9]                       #     接下來是0..5和0..9,意思是00到59
 
8. 日期格式 (dd/mm/yyyy) 正則表達式模式
(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)
(                          # 組#1開始
 0?[1-9]                   #   01-09或者1-9
 |                         #   ..或者
 [12][0-9]                 #   10-19或者20-29
 |                         #   ..或者
 3[01]                     #   30, 31
)                          # 組#1結束
  /                        #   接下來是一個"/"
   (                       #     組#2開始
    0?[1-9]                #       01-09或者1-9
    |                      #       ..或者
    1[012]                 #       10,11,12
    )                      #     組#2結束
     /                     #       接下來是一個"/"
      (                    #         組#3開始
       (19|20)\\d\\d       #           19[0-9][0-9]或者20[0-9][0-9]
      )                    #         組#3結束
     
9. HTML標籤正則表達式模式
<("[^"]*"|'[^']*'|[^'">])*>
<                # 以"<"標籤開始
 (               #   組#1開始
  "[^"]*"        #     只容許兩個雙引號成對出現-"string"
  |              #     ..或者
  '[^']*'        #     只容許兩個單引號成對出現- 'string'
  |              #     ..或者
  [^'">]         #     不能出現單獨的雙引號、單引號和">"
 )               #   組#1結束
 *               #   0次或屢次
>                # 以結束標籤">"結束
字符串


10. HTML連接正則表達式模式
HTML中的A標籤正則表達式模式
(?i)<a([^>]+)>(.+?)</a>
(              # 組#1開始
 ?i            #   全部的檢查區分大小寫
)              # 組#1結束
<a             # 以"<a"開始
  (            #   組#2開始
   [^>]+       #     除了(">")以外的任意字符,至少一個字符
  )            #   組#2結束
  >            #     接下來是">"
   (.+?)       #       匹配全部
        </a>   #         以"</a>結束提取HTML連接正則表達式模式
\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+));
\s*                          # 能夠以空格開始
  (?i)                       #   全部的檢查是區分大小寫的
     href                    #     接下來是一個"href"字
        \s*=\s*              #       等號兩邊都容許空格,
              (              #         組#1開始
               "([^"]*")     #           只容許2個雙引號成對出現 - "string"
               |             #           ..或者
               '[^']*'       #           只容許2個單引號成對出現 - 'string'
               |             #           ..或者
               ([^'">]+)     #           或者不容許出現單獨的單引號、雙引號和">"
               )             #         組#1結束
get

相關文章
相關標籤/搜索