正則規(guī)則

/…/ 代表一個模式的開始和結(jié)束
^   匹配字符串的開始
$   匹配字符串的結(jié)束
(x) 匹配x保存x在名為$1...$9的變量中 
x|y 匹配x或y 
[xyz] 字符集(character set)温数,匹配這個集合中的任一一個字符(或元字符) 
[^xyz] 不匹配這個集合中的任何一個字符 

[\b] 匹配一個退格符 
\b 匹配一個單詞的邊界 
\B 匹配一個單詞的非邊界 
\cX 這兒违寞,X是一個控制符滥搭,/\cM/匹配Ctrl-M 
\n 匹配一個換行符 
\r 匹配一個回車符 
\t 匹配一個制表符 
\v 匹配一個重直制表符
\s  任何空白字符
\S  任何非空白字符
\d  匹配一個數(shù)字字符,等價于[0-9]
\D  除了數(shù)字之外的任何字符吃度,等價于[^0-9]
\w  匹配一個數(shù)字楷力、下劃線或字母字符滑黔,等價于[A-Za-z0-9_]
\W 匹配一個不可以組成單詞的字符,如[\W]匹配"$5.98"中的$宵距,等于[^a-zA-Z0-9]腊尚。

.   除了換行符之外的任意字符

{n} 匹配前一項n次
{n,}    匹配前一項n次,或者多次
{n,m}   匹配前一項至少n次满哪,但是不能超過m次
*   匹配前一項0次或多次婿斥,等價于{0,}
+   匹配前一項1次或多次,等價于{1,}
哨鸭?   匹配前一項0次或1次民宿,也就是說前一項是可選的,等價于{0,1}


"^\\d+$"  //非負(fù)整數(shù)(正整數(shù) + 0) 
"^[0-9]*[1-9][0-9]*$"  //正整數(shù) 
"^((-\\d+)|(0+))$"  //非正整數(shù)(負(fù)整數(shù) + 0) 
"^-[0-9]*[1-9][0-9]*$"  //負(fù)整數(shù) 
"^-?\\d+$"    //整數(shù) 
"^\\d+(\\.\\d+)?$"  //非負(fù)浮點數(shù)(正浮點數(shù) + 0) 
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數(shù)
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮點數(shù)(負(fù)浮點數(shù) + 0) 
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負(fù)浮點數(shù)
"^(-?\\d+)(\\.\\d+)?$"  //浮點數(shù) 
"^[A-Za-z]+$"  //由26個英文字母組成的字符串 
"^[A-Z]+$"  //由26個英文字母的大寫組成的字符串 
"^[a-z]+$"  //由26個英文字母的小寫組成的字符串 
"^[A-Za-z0-9]+$"  //由數(shù)字和26個英文字母組成的字符串 
"^\\w+$"  //由數(shù)字像鸡、26個英文字母或者下劃線組成的字符串 
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url 
字符? 
意義:匹配?前面的字符0次或1次活鹰。 
例如:/e?le?/匹配"angel"中的'el'和"angle."中的'le'。
var reg=/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;

//(?![0-9]+$) 不能是純數(shù)字 , 限制 志群,不占位
            
// ?! 開頭不能只是拼接數(shù)字結(jié)尾
// 開始位置開始算起 着绷, $是一個結(jié)尾位置
//(?![0-9]+$)就是修飾不能是純數(shù)字
            
// 斷言此位置后,字符串結(jié)尾之前赖舟,所有的字符不能全部由數(shù)字([^a-zA-Z]表示非英文字母蓬戚,結(jié)合下文,這里匹配數(shù)字)組成宾抓。
// [0-9]+ 是純數(shù)字
// ?! 不能以后邊的這些開始子漩。
//(?![a-zA-Z]+$) 不能是純字母 , 限制石洗,不占位
            
//[0-9A-Za-z]{6,20} 6-20位的字符
var reg=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;


2.查找子串在父串中的位置

>>> re.search(r'shuage','i love shuage!!')
<_sre.SRE_Match object; span=(7, 13), match='shuage'>

2.查找父串中所有的子串幢泼,返回一個數(shù)組

>>> re.findall(r'[a-z]','ShuaiGe')
['h', 'u', 'a', 'i', 'e']

3.綜合整理

.        點(.)代表任意字符
\.       匹配點(.)
\d      配置所有的數(shù)字
[]       匹配[]里面任何一個字符
{}       前邊要匹配的字符要顯示多少次
|        邏輯或
()       表示分組
^       以字符串開頭
$       以字符串結(jié)尾
\       把元字符變?yōu)槠胀ㄗ址哑胀ㄗ址優(yōu)樘厥庾址齖d
\數(shù)字   例如\1表示第一組(小括號里面的正則)再重復(fù)一次讲衫,\2表示第二組再重復(fù)一次
            舉例: (shuage)\1  == shuageshuage     (shuage)(hao)\2 == shuagehaohao
        
        如果以0開頭缕棵,或者3個數(shù)字的長度,那么不會被用于引用對應(yīng)的子組涉兽,而是用于匹配八進(jìn)制數(shù)字所表示的ASCII碼值對應(yīng)的字符


[.]  匹配.

[\]   會報錯招驴,\ 在[]中表示轉(zhuǎn)意符
[\n]  表示回車
[^a-z] 表示除了a-z以外的都匹配,^表示取反
[a-z^] 表示^本身

*   表示匹配前面的子表達(dá)式零次或多次枷畏,等價于{0,}
+  表示匹配前面的子表達(dá)式一次或多次别厘,等價于{1,}
?   表示匹配前面的子表達(dá)式零次或1次,等價于{0,1}

正則默認(rèn)是貪婪模式拥诡,啟用非貪婪模式方法:在重復(fù)后面加上?就可以了触趴。


\b   表示匹配一個單詞的邊界,被定義為Unidcode的字母數(shù)字或者下橫線字符也被認(rèn)為是一個單詞的一部分    .()!屬于單詞的邊界

\B   表示匹配非單詞邊界,其實就是跟上邊的相反
\D  表示匹配跟\d相反的字符
\s   表示匹配空白字符渴肉,例如 \t(制表符)\n(空格)\r(回車)\f(換頁)\v(表示垂直的tab鍵)
\S  表示與\s相反
\w 表示匹配單詞字符
\W 表示與\w相反

4.正則說明

[a-z] 匹配所有的小寫字母
[0-9] 匹配所有的數(shù)字
3{3}  3個3   大括號前邊這個字符是多少個
3{3,10}   3-10個3   大括號前邊這個字符是多少個

5.案例

匹配(0-255):[01]\d\d|2[0-4]\d|25[0-5]    按照每位來匹配
匹配ip :(([01]{0,1}\d{0,1}\d|2[0-4]{0,1}\d{0,1}|25[0-5]{0,1})\.){3}([01]{0,1}\d{0,1}\d|2[0-4]{0,1}\d{0,1}|25[0-5]{0,1})
  解釋:
    ([01]{0,1}\d{0,1}\d|2[0-4]{0,1}\d{0,1}|25[0-5]{0,1}) : ()小括號里面的是一個完整部分冗懦,匹配(0-255)
    (([01]{0,1}\d{0,1}\d|2[0-4]{0,1}\d{0,1}|25[0-5]{0,1})\.) : 最外邊小括號是一個完整部分,匹配(0-255).
    (([01]{0,1}\d{0,1}\d|2[0-4]{0,1}\d{0,1}|25[0-5]{0,1})\.){3} : 表示前邊的小括號執(zhí)行3次

正則默認(rèn)貪婪模式
>>> s = '<html><title> i love shuage </title></html>'
>>> re.search(r'<.+>',s)
<_sre.SRE_Match object; span=(0, 43), match='<html><title> i love shuage </title></html>'>

啟用非貪婪模式
>>> s = '<html><title> i love shuage </title></html>'
>>> re.search(r'<.+?>',s)
<_sre.SRE_Match object; span=(0, 6), match='<html>'>

6.編譯正則表達(dá)式 -- 成模塊級別 --有6種編譯模式

>>> p = re.compile(r'[A-Z]')
>>> p.search('I love ShuaGe')
<_sre.SRE_Match object; span=(0, 1), match='I'>
>>> p.findall('I love ShuaGe')
['I', 'S', 'G']
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仇祭,一起剝皮案震驚了整個濱河市披蕉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乌奇,老刑警劉巖嚣艇,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異华弓,居然都是意外死亡食零,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門寂屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贰谣,“玉大人娜搂,你說我怎么就攤上這事≈ǜВ” “怎么了百宇?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秘豹。 經(jīng)常有香客問我携御,道長,這世上最難降的妖魔是什么既绕? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任啄刹,我火速辦了婚禮,結(jié)果婚禮上凄贩,老公的妹妹穿的比我還像新娘誓军。我一直安慰自己,他們只是感情好疲扎,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布昵时。 她就那樣靜靜地躺著,像睡著了一般椒丧。 火紅的嫁衣襯著肌膚如雪壹甥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天壶熏,我揣著相機與錄音句柠,去河邊找鬼。 笑死久橙,一個胖子當(dāng)著我的面吹牛俄占,可吹牛的內(nèi)容都是我干的管怠。 我是一名探鬼主播淆衷,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渤弛!你這毒婦竟也來了祝拯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤她肯,失蹤者是張志新(化名)和其女友劉穎佳头,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晴氨,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡康嘉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了籽前。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亭珍。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡敷钾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肄梨,到底是詐尸還是另有隱情阻荒,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布众羡,位于F島的核電站侨赡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粱侣。R本人自食惡果不足惜羊壹,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甜害。 院中可真熱鬧舶掖,春花似錦、人聲如沸尔店。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嚣州。三九已至鲫售,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間该肴,已是汗流浹背情竹。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匀哄,地道東北人秦效。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像涎嚼,于是被迫代替她去往敵國和親阱州。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 正則表達(dá)式:專門規(guī)定字符串中字符*格式規(guī)則*的表達(dá)式 何時使用:只要定義字符串格式規(guī)則法梯,都用正則表達(dá)式 1苔货、字符集...
    MC丶逗逼嘿閱讀 600評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)立哑,斷路器夜惭,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法铛绰,內(nèi)部類的語法诈茧,繼承相關(guān)的語法,異常的語法捂掰,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 家門口的老飯店敢会,味道很棒 韭菜不香镊叁,有點水,不太好吃走触。 哇這是一道很實的大菜啊晦譬,腸不是很肥,所以超好吃互广! 他們家的...
    菠00閱讀 157評論 0 0
  • 觀「好奇心日報」敛腌,隨手摘錄一些值得借鑒的版式設(shè)計。 ▎巧用icon第一眼看到的不是文字惫皱,而是三個黃色的圓形像樊,這是給...
    寧小南閱讀 965評論 4 9