python——正则表达式
生活随笔
收集整理的這篇文章主要介紹了
python——正则表达式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
python——正則表達(dá)式
- 1、簡介
- 2、常用的元字符
- 3、常用表達(dá)式舉例
- 4、運(yùn)算符優(yōu)先級
- 5、常用正則表達(dá)式
- 6、python 正則的簡單使用
- 6.1 貪婪模式與非貪婪模式
- 6.2 轉(zhuǎn)義字符的使用
- 6.3 除了換行符之外的匹配(想匹配換行符需添加修飾符)
- 6.4 純數(shù)字的正則
- 6.5 匹配判斷的方法
- 6.6 范圍運(yùn)算 [123] [1-9]
- 6.7 正則的方法
1、簡介
- 正則表達(dá)式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,
- 就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
- 正則表達(dá)式是一種文本模式,該模式描述在搜索文本時要匹配的一個或多個字符串。
2、常用的元字符
| \ | 轉(zhuǎn)義字符 |
| . | 匹配除換行(\n)以外的所有字符 |
| ^ | 匹配字符串的開始位置,在集合([])中表示“非” |
| $ | 匹配字符串的結(jié)束位置 |
| ? | 匹配前面的子表達(dá)式0次或1次 |
| * | 匹配前面的子表達(dá)式0次或多次 |
| + | 匹配前面的子表達(dá)式至少1次 |
| () | 標(biāo)記一個子表達(dá)式的開始和結(jié)束位置,其結(jié)束符號")"是元字符 |
| [] | 字符組的起始符號,其結(jié)束符號"]"不是元字符 |
| {} | 標(biāo)記限定符的開始,其結(jié)束符號"}"不是元字符 |
| | | 表示或 |
3、常用表達(dá)式舉例
| \w | 匹配字母、數(shù)字、下劃線 |
| \W | 匹配非字母、數(shù)字、下劃線 |
| \d | 匹配數(shù)字 |
| \D | 匹配非數(shù)字 |
| \b | 匹配單詞的開始或結(jié)束 |
| \B | 匹配非單詞的開始或結(jié)束 |
| \s | 匹配任何空白字符 如回車、空格、制表符等 [\f\n\r\t\v] |
| \S | 匹配任何非空白字符 |
| {n} | 匹配前面子表達(dá)式n次 |
| {n,m} | 匹配前面子表達(dá)式n到m次 |
| {n,} | 匹配前面子表達(dá)式n次以上 |
| [xyz] | 表示字符集,匹配所包含的任意字符 |
| [a-z] | 表示字符范圍,能匹配范圍內(nèi)的任意字符 |
| (abc) | 組合,將這n個項組合為一個單元,可以對這n個單元使用限定符 |
4、運(yùn)算符優(yōu)先級
| \ | 最高 | 轉(zhuǎn)義字符 |
| () (?: ) (?=) [] | 高 | 圓括號和方括號 |
| * + ? {n} {n,} {n,m} | 中 | 限定符 |
| ^ $ \ 任何元字符 任何字符 | 低 | 定位符和序列 |
| | | 最低 | 或 |
5、常用正則表達(dá)式
1、漢字:^[\u4e00-\u9fa5]{0,}$ 2、英文和數(shù)字:^[A-Za-z0-9]+$ 3、由數(shù)字、26個英文字母或者下劃線組成的字符串:^\w+$ 4、中文、英文、數(shù)字包括下劃線:^[\u4e00-\u9fa5A-Za-z0-9_]+$ 5、Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 6、InternetURL: ^https://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$6、python 正則的簡單使用
正則里面嚴(yán)格區(qū)分大小寫
import re6.1 貪婪模式與非貪婪模式
one = "m123456npkdaaidjifn" pattern = re.compile("^m(.*)n$")# 貪婪模式 pattern.findall(one) # findall 返回列表pattern = re.compile("^m(.*?)n$") # 非貪婪模式 pattern.findall(one)6.2 轉(zhuǎn)義字符的使用
one = "a\n" pattern = re.compile("a\\n") pattern.findall(one)6.3 除了換行符之外的匹配(想匹配換行符需添加修飾符)
one = """mshfsafjsahfsdsdn1231564684899848n """ pattern = re.compile("m(.*)n") pattern.findall(one) pattern = re.compile("m(.*)n",re.S) # 添加修飾符會匹配換行符 pattern.findall(one) one = """mshfsafjsahfsdsdN1231564684899848N """ pattern = re.compile("m(.*)n",re.I) # 添加修飾符忽略大小寫 pattern.findall(one)6.4 純數(shù)字的正則
one = "12344569878" pattern = re.compile("\d") pattern.findall(one)6.5 匹配判斷的方法
one = "1234a" pattern = re.compile("\d+") result = pattern.match(one) # 返回是否匹配成功 并且從頭開始匹配 result.group()6.6 范圍運(yùn)算 [123] [1-9]
one = "123456" pattern = re.compile("[123]") pattern.findall(one) pattern = re.compile("[1-9]") pattern.findall(one)6.7 正則的方法
- findall:查找符合正則的內(nèi)容 并返回列表
- match:從頭頭匹配 匹配一次 返回匹配是否成功的結(jié)果
- search:從任意位置匹配一次 返回匹配是否成功的結(jié)果
- sub:替換字符串
- split:拆分字符串
總結(jié)
以上是生活随笔為你收集整理的python——正则表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python —— 装饰器
- 下一篇: python——xpath