1. 程式人生 > >正則表示式常用的資料判斷

正則表示式常用的資料判斷

參考網址 :https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx

一、校驗數字的表示式

 1 數字:^[0-9]*$

 2 n位的數字:^\d{n}$

 3 至少n位的數字:^\d{n,}$

 4 m-n位的數字:^\d{m,n}$

 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$

 6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

 7 帶1-2位小數的正數或負數:^(\-)?\d+(\.\d{1,2})?$

 8 正數、負數、和小數:^(\-|\+)?\d+(\.\d+)?$

 9 有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$

10 有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$

11 非零的正整數:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

12 非零的負整數:^\-[1-9][]0-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]{0,}$

 2 英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

 3 長度為3-20的所有字元:^.{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{3,20}$

 9 中文、英文、數字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 中文、英文、數字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

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

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

三、特殊需求表示式

 1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

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

 4 手機號碼:^(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{8}$

 5 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

 6 國內電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

7身份證號碼(數字、字母x結尾):^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$

 9 帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

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

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

12 日期格式:^\d{4}-\d{1,2}-\d{1,2}

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

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

15 錢的輸入格式:

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

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

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

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

20    5.必須說明的是,小數點後面至少應該有1位數,所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$

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

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

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

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

25 xml檔案:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

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

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

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

29 HTML標記的正則表示式:<(\S*?)[^>]*>.*?</\1>|<.*? />    (網上流傳的版本太糟糕,上面這個也僅僅能部分,對於複雜的巢狀標記依舊無能為力)

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

31 騰訊QQ號:[1-9][0-9]{4,}    (騰訊QQ號從10000開始)

32 中國郵政編碼:[1-9]\d{5}(?!\d)    (中國郵政編碼為6位數字)

33 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址時有用)

相關推薦

表示式常用資料判斷

參考網址 :https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 一、校驗數字的表示式  1 數字:^[0-9]*$  

Python中表示式常用函式sub,search,findall,split等使用

1.原生字串r python中字串前面加上 r 表示原生字串,不會轉義。與大多數程式語言相同,正則表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正則表示式裡將需要4個反斜槓"\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜

表示式——常用量詞

{m,n}是通用形式的量詞,正則表示式還有三個常用量詞,分別是+、?、*。它們的形態雖然不同於{m,n},功能卻是相同的(也可以把它們理解為"量詞簡記法"),具體說明見表2-2。 表2-2  常用量詞 常用量詞 {m,n}等價形式

Hive使用表示式讀取資料

上一篇部落格中hive中載入的資料都是比較規整的(Hive的基本操作:https://blog.csdn.net/Chris_MZJ/article/details/83713882),欄位與 欄位之間都是分割好的,每一個欄位都不是髒資料,並且每一個欄位都是有意義的但是在真實場景中不見得

表示式常用方法

RegExp物件中的方法 1,test()方法用於檢測一個字串是否匹配某個模式,如果字串中含有匹配的文字,則返回 true,否則返回 false。 reg規定匹配以a開頭的字串,利用test進行測試,字串str滿足reg匹配規則,利用test方法進行測試,滿足當前規則返回true,不滿

python筆記-表示式常用函式

1、re.findall(pattern,string,flags=0) ——> list(列表) 列出字串中模式的所有匹配項,並作為一個列表返回。如果無匹配,則返回空列表! 與re.search()不一樣的地方: re.findall返回的是列表,re.search返回文字 re.findall

Java程式設計基礎15——表示式&常用工具類

1_正則表示式的概述和簡單使用 A:正則表示式 是指一個用來描述或者匹配一系列符合某個語法規則的字串的單個字串。其實就是一種規則。有自己特殊的應用。 作用:比如註冊郵箱,郵箱有使用者名稱和密碼,一般會對其限制長度,這個限制長度的事情就是正則表示式做的 B

JavaScript表示式-常用方法

公司之前有個胖女孩說你竟然會正則? 其實正則沒那麼難;今天我們說說他常用的幾個API。 在講方法之前, 我們先對正則表示式做一個基本的瞭解: 1、正則表示式定義使用單個字串來描述、匹配一系列符合某個句法規則的字串搜尋模式。 2、英語:Regular Expression,在程式碼中常簡寫為regex、R

Python中re(表示式)常用函式總結

1  re.match       #嘗試從字串的開始匹配一個模式     re.match的函式原型為:re.match(pattern, string, flags)     第一個引數是正則表示式,這裡為"(\w+)\s",如果匹配成功,則返回一個Match,否則返

JS表示式--表示式常用字串函式

一.正則常用字串函式 var str="haaaaaaaaa"; //建立正則表示式 var reg=/a/; (1) reg.test()函式:判斷字串中是否有符合正則規則的內容,返回值為boolean型別 var value=reg.test(s

JS表示式--表示式常用例項

正則表示式常用例項: // 1. 校驗基本日期格式 var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/; var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}

表示式常用

正則表示式 正則表示式的介紹 (1)資料型別: 基本資料型別: number string boolean null undefined 複雜資料型別: Array Function Object Math Date RegExp正則表示式) String Nu

表示式常用符號和字元

正則表示式 正則表示式是由一些字元和特殊符號組成的字串,他們描述了模式的重複或表述多個字元,於是正則表示式能按照某種模式匹配一系列有相似特徵的字串。也即它們能匹配多個字串。 常用特殊字元和符號 0.擇一匹配         (|) |  從多

表示式常用函式

正則表示式:以字串的形式規定一個規則,在文字中匹配並找出符合的字串。re庫中常用的六個函式分別是match、compile、sub、split、search、findall,這些函式的用法基本都是相同的,只是目的不一樣。假設method是re庫中的函式re.method(pa

表示式常用匹配字元大全

1.正則表示式 直接量字元 字元 匹配 \o //NULL字元(\u0000) \t //製表符(\u0009) \n //換行符(\u000A) \v

表示式——常用表示式驗證輸入合法性

1、手機號 ① 前兩位為13、15、17、18、19,長度為11 function isMobile(v){ var reg = /^1(3|5|7|8|9)\\d{9}$/; return reg.

表示式常用萬用字元

(1)'^'匹配以該字元後面的字元開頭的字串(2)'$'匹配以該字元後面的字元結尾的字串(3)'.'匹配任何一個單字元(4)'[...]'匹配在方括號內的任何字元。例如,“[abc]" 匹配a、b或c。

表示式去除資料帶HTML標籤方法

新的訊息列表介面,後臺返回的簡要說明和詳細說明是一個欄位,還是帶HTML標籤的欄位,只能自行 去除HTML標籤。 簡要說明一下,&.{2,6}?;   這個是正則表示式,是拿到 html的部分

Hive表示式資料過濾

正在做的一個專案中,由於資料量比較大,所以資料的內容比較亂,比如說mac地址,這個地址有的資料中存在,有的資料中不存在,當通過hive進行匯出資料的時候,如果存在些非法的型別的資料會造成NoSuchElement異常,經過幾天的排查與摸索,終於將該隱患排除。

表示式常用匹配

#-*-coding:utf8-*- #匯入re庫檔案 import re # from re import findall,search,S #.的使用舉例 a = 'xy123' b = re.findall('x...',a) print b #輸出 ['xy12'] #解析:...相當於佔位符