python3 正則表示式(更新中)
1、特殊符號(先解釋,後面會有例子)
表示 | 描述 |
---|---|
re1|re2 | 或的關係 |
. | 匹配任何字元(\n除外),要顯示的匹配.號,需要加\| |
^ | 匹配字串的開頭 |
$ | 匹配字串的結尾 |
* | 匹配0次或多次前面出現的正則表示式 |
+ | 匹配1次或者多次前面出現的正則表示式 |
? | 匹配0次或者一次(一句話,就是匹配越少越好) |
{N} | 重複N次前面出現的正則表示式 |
{M,N} | 匹配M~N次前面出現的正則 |
【abcd】 | 匹配集合中某一個元素 |
【x-y】 | 匹配x~y範圍內任意的一個字元(如【A-Za-z】匹配大小寫 |
【^……】 | 不匹配集合裡的字元(切記:^【……】意義是匹配以集合元素開頭的) |
注意 | 直接使用\…的時候是在用r‘\……’情況使用的,不用r是要用\……才能使用 |
\d | 匹配十進位制數字 |
\w | 匹配任何字母數字 |
\s | 匹配任何空字元(\S與之相反) |
\N | 匹配已經儲存的子組 |
\A | 和^一個意思 |
\Z | 和$一個意思 |
(?=.com) | 如何一個字串跟著.com才做匹配操作 |
(?!.net) | 如何一個字串後面不是跟著.net才做匹配操作 |
(?(1)y|x) | 如果一個匹配組(1)存在,就和y匹配,否則和x匹配 |
2、re模組函式
函式方法 | 描述 |
---|---|
compile(str,flags) | 預編譯一個正則模式,返回正則表示式物件 |
match(pattern,str,flags) | 從頭開始按照pattern模式匹配str |
search(pattern,str,flags) | 隨意按照pattern模式查詢str |
findall(pattern,string,flags) | 查詢字串中所有非重複出現的正則表示式模式,並返回一個列表 |
finditer(pattern,string,flags) | 與findall()一樣,只是返回一個迭代器 |
sub(patter,repl,string,count) | 使用repl替換所有正則在string中出現的位置,如果沒有count就會替換所有 |
(?iLmsux)部分詳細解釋 | 下列屬性 |
re.I、re.IGNORECASE | 不區分大小寫的匹配 |
re.M、re.MULTLINE | 根據^和$的開始和結束來匹配 |
3、使用match()方法匹配字串
>>>import re
>>>m = re.match('foo','food on the table')
>>>m.group()#group()返回匹配物件
'foo'
4、使用search()方法查詢
>>>import re
>>>m = re.rearch('foo',seafood')
>>>m.group()
'foo'
5、匹配多個字串
>>>bt ='bat|bet|bit'
>>>m = re.match(bt,'bat')
>>>m.group()
'bat'
6、匹配單個字元
>>>anyend = '.end'
>>>m = re.match(anyend,'bend')
>>>m.group()
'bend'
7、建立字符集【】
>>>m = re.match('[cr][23][dp][o2]','c3po')
>>>m.group()
'c3po'
8、group()和groups()區別
#一個括號代表一個組
#groups返回一個元祖
>>>m = re.match('(\w\w\w)-(\d\d\d)','abc-123')
>>>m.group()
'abc-123'
>>>m.group(1)
'abc'
>>>m.group(2)
'123'
>>>m.groups()
('abc','123')
9、findall查詢所有的,finditer迭代
>>>re.findall(r'(th\w+)','This and that,re.I)
#re.I忽略大小寫,r是使用原生字元
['This','that']
>>>it = re.finsiter(r'th\w+)','This and that',re.I)
>>> g = it.__next__()
>>>g.groups()
('This',)
>>g.group(1)
'This'
>>>g = it.__next__()
>>>g.groups()
('that',)
10、使用sub()和subn()搜尋和替換
>>>re.sub('X','Mr.Smith','attn:X',\n')
'attn:Mr.Smith,\n'
#subn會返回('attn:Mr.Smith,\n',1),替換了一次
#\N是分組編號
>>>re.sub(r'(\d{1,2})/(\d{1,2})/(\d{2}|\d{4}',
... r'\2/\1/\3','2/20/91')
'20/2/91'
#替換的結果就是結果的第一個組變成第二個組,第二個組變成第一個
11、貪婪與不貪婪
#貪婪
>>>pat = '.+\d+-\d+-\d+'
>>>date = 'Thu Feb 15 17:46:04 2007::[email protected]::1212345-6-8'
>>>re.search(pat,date).group()
'Thu Feb 15 17:46:04 2007::[email protected]::1212345-6-8'
#不貪婪
>>>pat = '.+?\d+-\d+-\d+'
...
...
>>>re.search(pat,date).group()
'1212345-6-8'
相關推薦
python3 正則表示式(更新中)
1、特殊符號(先解釋,後面會有例子) 表示 描述 re1|re2 或的關係 . 匹配任何字元(\n除外),要顯示的匹配.號,需要加\| ^ 匹配字串
Python3 正則表示式中group()方法獲得匹配結果
正則表示式中用match()方法可以獲得匹配的字串內容。 如果想從字串中提取出一部分內容,可以用括號將提取目標括起來。 括號()實際上標記了一個子表示式的開始和結束的位置,被標記的每個子表示式會依次對應每個分組,呼叫group()方法傳入分組的索引即可獲得提取的結果。
在linux下,如何在C語言中使用正則表示式(整理)
一個正則表示式的教程可以參看(裡面有個測試正則表示式的工具) 正則表達是用來匹配字串的好東東。 如果使用者熟悉Linux下的sed、awk、grep或vi,那麼對正則表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現 在已
Python3 正則表示式特殊符號及用法(詳細列表)
廢話 有一個美式笑話:我有一個難題,可以用正則表示式解決,那麼,現在我有兩個難題。 美式笑話確實有點冷,只有學過正則表示式的人才能讀懂這個段子。 下面列舉了Python3的所有符號用法,別背,千萬
python3的正則表示式(regex)
正則表示式提供了一種緊湊的表示法,可用於表示字串的組合,一個單獨的正則表示式可以表示無限數量的字串。常用的5種用途:分析、搜尋、搜尋與替代、字串的分割、驗證。 (一)正則表示式語言python中特殊字元有 \.^$?+*{}[]()|1、字元類速記^ 如果在字元類中第一個字元則表示否定;-
(基礎)Python3正則表示式
python正則表示式介紹: 佇列 介紹 在爬蟲的程式中用到了廣度優先順序演算法,該演算法用到了資料結構,當然你用list也可以實現佇列,但是效率不高。現在在此處介紹下: 在容器中有佇列:collection.deque #佇列簡單測試: from co
Mssql中實現用正則表示式更新欄位值
create function dbo.regexReplace ( @source varchar(5000), --原字串 @regexp varchar(1000), --正則表示式 @replace varch
Android中驗證姓名、身份證、銀行卡、手機號(正則表示式校驗)
最近專案中遇到驗證銀行卡號的問題,就查了一下,也總結總結,後期如果發現其他資訊驗證的會補上的。 1.驗證輸入的身份證號是否正確 public static boolean isLegalId(String id) { if (id.toUpperCase
正則表示式(re)
1、re.match(pattern, str, flag) 從str的第一個字母開始匹配,若不是開頭的,儘管屬於str內,則無法匹配。 2、貪婪匹配與非貪婪匹配(?) 貪婪匹配:嘗試匹配儘可能多的字元 >>> sentence = """You said "why?" and I
正則表示式(數量詞)
public class Demo4_Regex { /** * Greedy 數量詞 X? X,一次或一次也沒有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次
正則表示式(RegEx)——快速參考
https://ahkcn.github.io/docs/misc/RegEx-QuickRef.htm#%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%88RegEx%EF%BC%89%E2%80%94%E2%80%94%E5%BF%
正則表示式(基礎)
^: 1)放某字元前面,表示以什麼開頭(如:^a,表示以a開頭的所有字串) 2)在方括號裡用'^'表示不希望出現的字元,'^'應在方括號裡的第一位。(如:%[^a-zA-Z]% ,表示兩個百分號中不應該出現字母) $:放某字元後面,表示以什麼結尾 *:放某字元後面,表示沒有或更多,還
MySQL 正則表示式(REGEXP)
正則表示式用來匹配文字的特殊的串(字元集合)(匹配文字,將一個模式(正則表示式)與一個文字串進行比較)。 LIKE 和 REGEXP之間的重要差別 LIKE 匹配整個列,如果被匹配的文字在列值中出現,LIKE 將不會找到它,相應的行也不會被返回(除非使用萬用字元)。而 REGEXP 在列
js正則表示式(2)
找到以某個字串開頭的字串 var myReg=/^(abc)/gim; 如果不加m,那麼只找一行,而加了m可以找到每行中以該字串開頭的匹配文字。 如: abcsfsdfasd7890hklfahskfkaluiop7890-7890782ksdlafkasdnfklsdnf;lsabc
詳解JavaScript正則表示式(三)
本文是JavaScript正則表示式的第三篇文章,若是對正則表示式陌生的話,可以看我之前的兩篇文章。 詳解正則表示式(一) 詳解正則表示式(二) 貪婪模式和非貪婪模式 1、貪婪模式 在匹配成功的情況下,儘可能多的匹配。而JavaScript預設的就是貪婪模式。話不多說,直
詳解JavaScript正則表示式(一)
RegExp 物件表示正則表示式,它是對字串執行模式匹配的強大工具 這篇文章主要是對正則表示式有一個全面的瞭解,學完之後,當再次看到一些比較複雜的正則表示式的時候就可以逐步分析了。當然,再加上一段時間的練習,相信你自己也可以學會怎麼使用正則表示式的。 1、例項化正則表示式的兩種方
Python3 正則表示式語法整理
^ : 匹配輸入字串的開始位置(或在多行模式下行的開頭,即緊隨一換行符之後) . : 匹配除了換行符 \n 外的任意一個字元 : 匹配0次、1次或多次其前的原子 $ : 匹配輸入字串的結束位置(或在多行模式下
jsp頁面驗證手機號的正則表示式(最新)
jsp頁面校驗手機號(js): function checkMobile(){ var checkRole =/^0?(13[0-9]|15[012356789]|18[012346789]|1
Python :正則表示式(1)
#正則表示式 需要呼叫的模組 : import re #函式引數: patter :需要匹配的正則表示式 string:需要匹配的字串 flags :標誌位,用於控制正則的匹配方式 { re.I :忽略大小寫 var = re.match("www","Www.baidu.com.",
常用正則表示式(copy)
一、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(\.[0