Java常用正規表示式

2021-09-08 17:55:58 字數 3507 閱讀 2259

來自稍作改動

一、校驗數字的表示式

1 數字:([0-9])或(\d)

2 n位的數字:(\d)或([0-9]+)

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 有兩位小數的正實數:([0-9]+(.[0-9])?)

10 有1~3位小數的正實數:([0-9]+(.[0-9]))

11 非零的正整數: ([1-9]\d*)

或 (([1-9][0-9])) 或 (+?[1-9][0-9])

12 非零的負整數:(\-[1-9]+)

或 (-[1-9]\d*)

13 非負整數:\d+ 或

[1-9]\d*||0)

14 非正整數:-[1-9]\d*|0

或 ((-\d+)|(0+))

15 非負浮點數:\d+(.\d+)?

或 [1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0

16 非正浮點數:((-\d+(.\d+)?)|(0+(.0+)?))

或 (-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0

17 正浮點數:[1-9]\d*.\d*|0.\d*[1-9]\d*

或 (([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))

18 負浮點數:-([1-9]\d*.\d*|0.\d*[1-9]\d*)

或 (-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))

19 浮點數:(-?\d+)(.\d+)?

或 -?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)

二、校驗字元的表示式 1 漢字:[\u4e00-\u9fa5]

2 英文和數字:[a-za-z0-9]+ 或 [a-za-z0-9]

3 長度為3-20的所有字元:.

4 由26個英文本母組成的字串:[a-za-z]+

5 由26個大寫英文本母組成的字串:[a-z]+

6 由26個小寫英文本母組成的字串:[a-z]+

7 由數字和26個英文本母組成的字串:[a-za-z0-9]+

8 由數字、26個英文本母或者下劃線組成的字串:\w+ 或 \w

9 中文、英文、數字包括下劃線:[\u4e00-\u9fa5a-za-z0-9_]+

10 中文、英文、數字但不包括下劃線等符號:[\u4e00-\u9fa5a-za-z0-9]+ 或 [\u4e00-\u9fa5a-za-z0-9]

11 可以輸入含有%&』,;=?"等字元:[%&』,;=?\x22]+

12 禁止輸入含有的字元:[\x22]+

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

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

4 手機號碼:(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\d (由於工信部放號段不定時,所以建議使用泛解析

([1][3,4,5,6,7,8,9])\d)

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

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

7 18位身份證號碼(數字、字母x結尾):((\d)|([0-9x])|([0-9x]))

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

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

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

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

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

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

14 錢的輸入格式:

151.有四種錢的表示形式我們可以接受:「10000.00」 和 「10,000.00」, 和沒有 「分」 的 「10000」 和 「10,000」:[1-9][0-9]*

16 2.這表示任意乙個不以0開頭的數字,但是,這也意味著乙個字元"0"不通過,所以我們採用下面的形式:(0|[1-9][0-9]*)

173.乙個0或者乙個不以0開頭的數字.我們還可以允許開頭有乙個負號:(0|-?[1-9][0-9]*)

184.這表示乙個0或者乙個可能為負的開頭不為0的數字.讓使用者以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數部分:[0-9]+(.[0-9]+)?

195.必須說明的是,小數點後面至少應該有1位數,所以"10."是不通過的,但是 「10」 和

「10.2」 是通過的:[0-9]+(.[0-9])?

206.這樣我們規定小數點後面必須有兩位,如果你認為太苛刻了,可以這樣:[0-9]+(.[0-9])?

217.這樣就允許使用者只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:[0-9](,[0-9])*(.[0-9])?

228.1到3個數字,後面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:([0-9]+|[0-9](,[0-9])*)(.[0-9])?

23備註:這就是最終結果了,別忘了"+「可以用」*"替代如果你覺得空字串也可以接受的話(奇怪,為什麼?)最後,別忘了在用函式時去掉去掉那個反斜槓,一般的錯誤都在這裡

24 xml檔案:([a-za-z]±?)+[a-za-z0-9]+\.[x|x][m|m][l|l]

25 中文字元的正規表示式:[\u4e00-\u9fa5]

26 雙位元組字元:[\x00-\xff] (包括漢字在內,可以用來計算字串的長度(乙個雙位元組字元長度計2,ascii字元計1))

27 空白行的正規表示式:\n\s*\r (可以用來刪除空白行)

28 html標記的正規表示式:<(\s*?)[>]>.?|<.*?

/> (網上流傳的版本太糟糕,上面這個也僅僅能部分,對於複雜的巢狀標記依舊無能為力)

29 首尾空白字元的正規表示式:\s*|\s或(\s)|(\s*) (可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表示式)

Java常用正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...

Java常用正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...

Java常用正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...