直接上**吧:
import re
string = 'abe(ac)ad)'
p1 = re.compile(r'[(](.*?)[)]', re.s) #最小匹配
p2 = re.compile(r'[(](.*)[)]', re.s) #貪婪匹配
print(re.findall(p1, string))
print(re.findall(p2, string))
輸出:['ac']
['ac)ad']
解釋一下:
1.正則匹配串前加了r就是為了使得裡面的特殊符號不用寫反斜槓了。
2.[ ]具有去特殊符號的作用,也就是說[(]裡的(只是平凡的括號
3.正則匹配串裡的()是為了提取整個正則串中符合括號裡的正則的內容
4. .是為了表示除了換行符的任一字元。*克林閉包,出現0次或無限次。
5. 加了?是最小匹配,不加是貪婪匹配。
6. re.s是為了讓.表示除了換行符的任一字元。
python提取字串中數字
題目 這是乙個複雜問題的簡化 如下是乙個字串列表,提取字串中第二個數字,並判斷是否大於1000,如果是,從列表中刪除這一行。1000 t1002 n 省略 coding utf 8 oldstr 1000 t1002 n newstr oldstr 匹配目標數字左側字串 t newstr.index...
python如何提取字串?
在python中,要提取文字的字串,有多中方法,如使用正規表示式,beautifulsoup或xpath等來提取。下面講解用正規表示式來提取字串。一 單個位置的字串提取 這種情況我們可以使用 這個正規表示式來提取。舉例,乙個字串 a123b 如果我們想提取ab之間的值123,可以使用findall配...
提取 字串中 數字
include include include void main l if find break 有數字則退出迴圈 else printf 沒有數字 請重新輸入 n gets c 沒有則重新出入 l strlen c l strlen c printf 字串長度為 d n l for i 0 i ...