Java常用Regex備份,javaRegex
記錄下項目中用到測試通過的Regex,備忘。
1、
規則:4-30為字元、數字包括“-”,“_”特殊字元
正則:^[0-9-_a-zA-Z]{4,30}$
2、
規則:6-20位字元,至少包括字母和數位兩種,並區分大小寫
正則:^(?![a-zA-Z]+$)(?![0-9]+$)[a-zA-Z0-9]{6,20}$
3、
規則:100的整數倍
正則:^[1-9][0-9]*0{2}$
4、手機號
規則:第一位是1,共11位
正則:^1\d{10}$
規則:11位元字
正則:^\d{11}$
5、非空判斷
規則:輸入不可為空
正則:^[^\\s]+$
6、
規則:8-20位由數字、字母、底線、標點組成,必須含有數字和字母,不能含有中文或全形字元
正則:^(?![a-zA-Z]+$)(?![0-9]+$)[a-zA-Z1-9\u0000-\u00FF]{8,20}$
7、
規則:最多14位且不能為0(小數點後最多3位元字)
正則:(?!^0$)(?!^[0]{2,})(?!^0[1-9]+)(?!^0\.[0]*$)^\d{1,10}(\.\d{1,3})?$
8、
規則:不能包含小數
正則:(?!^0*$)^\d{1,14}$|^[0-9{1,2}(,[0-9{3}){0,4}$|^[0-9{1,3}(,[0-9{3}){0,3}$
9、
規則:不能小於0.01(小數點後最多兩位小數)
正則:(?!^0$)(?!^[0]{2,})(?!^0[1-9]+)(?!^0\.[0]*$)^(([1-9]+[0-9]*)|0)(\.\d{1,2})?$
10、
規則:入大於等於100的整數
正則:^[1-9]+[0-9]+[0-9]+$
11、
規則:最多14位(小數點後最多2位元字) 可以為0
正則:(?!^[0]{2,})(?!^0[1-9]+)(?!^\.[0]*$)^\d{1,11}(\.\d{1,2})?$
歡迎補充、討論。
JAVARegex代碼
\S{6,18}
以下是常用的Regex希望能幫到你。
size=12px]1。^\d+$ //匹配非負整數(正整數 + 0)
2。^[0-9]*[1-9][0-9]*$ //匹配正整數
3。^((-\d+)|(0+))$ //匹配非正整數(負整數 + 0)
4。^-[0-9]*[1-9][0-9]*$ //匹配負整數
5。^-?\d+$ //匹配整數
6。^\d+(\.\d+)?$ //匹配非負浮點數(正浮點數 + 0)
7。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮點數
8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮點數(負浮點數 + 0)
9。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配負浮點數
10。^(-?\d+)(\.\d+)?$ //匹配浮點數
11。^[A-Za-z]+$ //匹配由26個英文字母組成的字串
12。^[A-Z]+$ //匹配由26個英文字母的大寫組成的字串
13。^[a-z]+$ //匹配由26個英文字母的小寫組成的字串
14。^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字串
15。^\w+$ //匹配由數字、26個英文字母或者底線組成的字串
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
18。匹配中文字元的Regex: [\u4e00-\u9fa5]
19。匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
20。應用:計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
21。匹配空行的Regex:\n[\s| ]*\r
22。匹配HTML標記的Regex:/<(.*)>.*<\/\1>|<(.*) \/>/
23。匹配首尾空格的Regex:(^\s*)|(\s*$)...餘下全文>>
javaRegex
^ 和 $ 他們是分別用來匹配字串的開始和結束,以下分別舉例說明:
"^The": 開頭一定要有"The"字串;
"of despair$": 結尾一定要有"of despair" 的字串;
那麼,
"^abc$": 就是要求以abc開頭和以abc結尾的字串,實際上是只有abc匹配。
"notice": 匹配包含notice的字串。
你可以看見如果你沒有用我們提到的兩個字元(最後一個例子),就是說 模式(Regex) 可以出現在被檢驗字串的任何地方,你沒有把他鎖定到兩邊。
接著,說說 '*', '+',和 '?',
他們用來表示一個字元可以出現的次數或者順序. 他們分別表示:
"zero or more"相當於{0,},
"one or more"相當於{1,},
"zero or one."相當於{0,1}, 這裡是一些例子:
"ab*": 和ab{0,}同義,匹配以a開頭,後面可以接0個或者N個b組成的字串("a", "ab", "abbb", 等);
"ab+": 和ab{1,}同義,同上條一樣,但最少要有一個b存在 ("ab", "abbb", 等.);
"ab?":和ab{0,1}同義,可以沒有或者只有一個b;
"a?b+$": 匹配以一個或者0個a再加上一個以上的b結尾的字串.
要點, '*', '+',和 '?'只管它前面那個字元.
你也可以在大括弧裡面限制字元出現的個數,比如
"ab{2}": 要求a後面一定要跟兩個b(一個也不能少)("abb");
"ab{2,}": 要求a後面一定要有兩個或者兩個以上b(如"abb", "abbbb", 等.);
"ab{3,5}": 要求a後面可以有2-5個b("abbb", "abbbb", or "abbbbb").
現在我們把一定幾個字元放到小括弧裡,比如:
"a(bc)*": 匹配 a 後面跟0個或者一個"bc";
"a(bc){1,5}": 一個到5個 "bc."
還有一個字元 '│', 相當於OR 操作:
"hi│hello": 匹配含有"hi" 或者 "hello" 的 字串;
"(b│cd)ef": 匹配含有 "bef......餘下全文>>