聊一聊正規表示式,最全最常用總結

2021-09-11 09:18:42 字數 1902 閱讀 4892

日常開發文字處理過程中,簡單的ctro+h模式(一對一替換模式)已經不能滿足需要了我們需要更為強大的文書處理工具,正則於是應運而生。很多小夥伴不怎麼太懂正則。比如我們用到的最多的就是註冊的時候我們看到的使用者帳號驗證,密碼的驗證、郵箱等等、看看使用者所填寫的是否合乎規範、但是一般很常用的網上都有大批的資源

正規表示式存在的目的是提高複雜文字分析的效率的,比如說分析html、分析log、分析expression等。分分鐘教你學會正規表示式

最近整理了一些常見的正規表示式整理了一下,包括校驗數字、字元、一些特殊的需求等等。

一、校驗數字的表示式

二、校驗字元的表示式

三、特殊需求表示式

網域名稱:[a-za-z0-9][-a-za-z0-9](/.[a-za-z0-9][-a-za-z0-9])+/.?

interneturl:[a-za-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$

手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d$

**號碼(「***-******x」、」***x-******xx」、」***-******x」、」***-******xx」、」******x」和」******xx):^($$\d-)|\d-)?\d$

國內**號碼(0511-4405222、021-87888822):\d-\d|\d-\d

身份證號(15位、18位數字):^\d|\d$

短身份證號碼(數字、字母x結尾):^([0-9])(x|x)?$ 或 ^\d|[0-9x]|[0-9x]?$

帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-za-z][a-za-z0-9_]$

密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-za-z]\w$

強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間):^(?=.\d)(?=.[a-z])(?=.*[a-z]).$

日期格式:^\d-\d-\d

一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$

乙個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

四、 錢的輸入格式:

有四種錢的表示形式我們可以接受:

備註:這就是最終結果了,別忘了」+」可以用」*」替代。如果你覺得空字串也可以接受的話(奇怪,為什麼?)最後,別忘了在用函式時去掉去掉那個反斜槓,一般的錯誤都在這裡 xml檔案:^([a-za-z]+-?)+[a-za-z0-9]+\.[x|x][m|m][l|l]$

使用方式

public static void main(string args) [0-9]@(([a-za-z0-9]-*)\\.)[a-za-z\\-]";

// 編譯正規表示式

pattern pattern = pattern.compile(regex);

// 忽略大小寫的寫法

// pattern pat = pattern.compile(regex, pattern.case_insensitive);

matcher matcher = pattern.matcher(str);

// 字串是否與正規表示式相匹配

boolean rs = matcher.matches();

system.out.println(rs);

}複製**

總結

正規表示式其實學起來需要花費一些精力和時間的,一旦你自己學會,對開發有很大幫助的。

關於更多

分分鐘教你學會正規表示式

相信自己,沒有做不到的,只有想不到的

史上最全最常用的正規表示式

數字 0 9 n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實數 0 9 0...

史上最全最常用的正規表示式

數字 0 9 n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小數的正實數 0 9 0...

最全常用正規表示式

一 校驗數字的表示式 1.數字 0 9 2.n位的數字 d 3.至少n位的數字 d 4.m n位的數字 d 5.零和非零開頭的數字 0 1 9 0 9 6.非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7.帶1 2位小數的正數或負數 d d 8.正數 負數 和小數 d d 9.有兩位小數的...