python正規表示式( )(四)

2022-09-17 02:15:10 字數 3506 閱讀 6434

起始位置 和單行,多行模式

^表示匹配文字的起始位置。

正規表示式可以設定單行模式和多行模式

如果是單行模式,表示匹配整個文字的開頭位置

如果是多行模式,表示匹配文字每行的開頭位置

比如,下面的文字中,每行最前面的數字表示水果的編號,最後的數字表示**

001-蘋果**-60,

002-橙子**-70,

003-香蕉**-80,

如果我們要提取所有的水果編號,用這樣的正規表示式 ^\d+

用python**展示單行模式:

content='''001-蘋果**-60,

002-橙子**-70,

003-香蕉**-80,'''

import re

p=re.compile(r'^\d+')

for one in p.findall(content):

print(one)

'''輸出結果:001

'''預設為單行模式,所以只輸入001

用python**展示多行模式:

content='''001-蘋果**-60,

002-橙子**-70,

003-香蕉**-80,'''

import re

p=re.compile(r'^\d+',re.m)

for one in p.findall(content):

print(one)

'''輸出結果:

001002

003'''

注意:compile的第二個引數re.m,指明了使用多行模式,若不加re.m,表示單行模式,^只會匹配整個文字的開頭位置

$表示匹配文字的結束位置

如果是單行模式,表示匹配整個文字的結束位置

如果是多行模式,表示匹配文字每行的結束位置

比如,下面的文字中,每行最前面的數字表示水果的編號,最後的數字表示**

001-蘋果**-60

002-橙子**-70

003-香蕉**-80

如果我們要提取所有的水果**,用這樣的正規表示式 ^\d+$

用python**展示單行模式:

content='''001-蘋果**-60

002-橙子**-70

003-香蕉**-80'''

import re

p=re.compile(r'\d+$')

for one in p.findall(content):

print(one)

'''輸出結果:

80'''

用python**展示多行模式:

content='''001-蘋果**-60

002-橙子**-70

003-香蕉**-80'''

import re

p=re.compile(r'\d+$',re.m)

for one in p.findall(content):

print(one)

'''輸出結果:

6070

80'''

括號-組選擇括號稱之為 正規表示式的組選擇,是從正規表示式匹配的內容裡面扣取出其中的某些部分

前面,我們有個例子,從下面的文字中,選中每行逗號前面的字串,也包括逗號本身

蘋果,蘋果是綠色的

橙子,橙子是橙色的

香蕉,香蕉是黃色的

就可以這樣寫正規表示式 ^.*,

但是,如果我們要求不要包括逗號呢?

當然不能直接這樣寫 ^.*

因為最後的逗號是特徵所在,如果去掉它,就沒法找逗號前面的了。

但是把逗號放在正規表示式中,又會包含逗號

解決問題的方法就是使用組選擇符:括號

我們這樣寫 ^(.*),  ,結果如下

我們把要從整個表示式中提取的部分放在括號中,這樣水果的名字就被單獨的放在 組group中了

對應的python**如下:

content='''蘋果,蘋果是綠色的

橙子,橙子是橙色的

香蕉,香蕉是黃色的

'''import re

p=re.compile(r'^(.*),',re.multiline)

for one in p.findall(content):

print(one)

'''輸出結果:

蘋果橙子

香蕉'''

python**實現:

content='''蘋果,蘋果是綠色的

橙子,橙子是橙色的

香蕉,香蕉是黃色的

'''import re

p=re.compile(r'^(.*)(,)',re.multiline)

for one in p.findall(content):

print(one)

'''輸出結果:

('蘋果', ',')

('橙子', ',')

('香蕉', ',')

python**實現:

content='''張三,手機號碼15945678901

李四,手機號碼13945677701

王二,手機號碼13845666901

'''import re

p=re.compile(r'^(.+),.+(\d)',re.multiline)

for one in p.findall(content):

print(one)

'''輸出結果:

('張三', '15945678901')

('李四', '13945677701')

('王二', '13845666901')

'''

正規表示式四

oracle正規表示式 regularexpression 在oracle裡正規表示式有四個函式可用,分別是regexp like regexp substr regexp instr 和regexp replace。這裡在我們oracle 10g裡靈活應用。先來簡單介紹一下正規表示式的內容,正規表...

暱稱 正規表示式 四 正規表示式

存在形式 物件 作用 對字串進行複雜控制 建立正規表示式 var 變數名 new regexp 表示式 var 變數名 表示式 測試正規表示式 變數名.test str 返回布林值 邊界符 開頭 結尾 var rg abc 只要包含有abc這個字串返回的都是true rg.test abc true...

Python正規表示式初識(四)

今天繼續給大家分享python正規表示式基礎知識,主要給大家介紹一下特殊字元 的用法,具體的教程如下。特殊字元 實質上也是乙個限定詞的用法,其限定前面字元所出現的次數,其常用的模式有三種,分別是 和 舉個例子,如 和 到這裡可能大家還不是很清楚,下面依次通過例項來演示一下,加深對特殊字元 的理解。1...