re.findall():函數傳回包含所有符合項目的清單。傳回string中所有與pattern相符的全部字符串,傳回形式為list / 陣列。
由函數原型程式碼可知,findall() 函數存在三個參數:
1. pattern:正規表達式中的‘模式字串’;
2. string:目前需要處理(尋找替換)的原始字串;
3. flags:可選參數,表示編譯時使用的符合模式(如忽略大小寫、多行模式等),數字形式,預設為0
# 示例代码 import re text1 = '北京市海淀区不存在的38街区不想工作大厦99号' res = re.findall(r'\d+', text1) print(type(res)) print(res) # output # <class 'list'> # ['38', '99']
re.sub():函數將所有匹配項,替換為選擇的文本,並返回結果。
由函數原型程式碼可知,re.sub() 函數存在五個參數:
1. pattern:正規表示式中的‘模式字串’ ;
2. repl:需要被替換成的字串,即將匹配到的pattern替換為repl;可以是函數;
3. string:目前需要處理(尋找替換)的原始字串;
4. count:可選參數,表示需要取代的最大次數,必須是非負整數;預設值為0,即所有符合的子字串都進行替換操作;
5. flags:可選參數,表示編譯時用的匹配模式(如忽略大小寫、多行模式等),數字形式,預設為0
# 将所有匹配到的‘数字串' 替换为 '520‘ text1 = '北京市海淀区不存在的38街区不想工作大厦99号' res = re.re(r'\d+', 520) print(type(res)) print(res) # output,返回值res结果是str # <class 'str'> # 北京市海淀区不存在的520街区不想工作大厦520号
3. set ()
set():python內建函數的其中一個,建立一個無序不重複元素集。支援計算交集、差集、並並集。
# 为list数组l1 去重 l1 = [1, 1, 2, 2, 2, 3, 4] s1 = set(l1) print(type(s1)) print(s1) # output,返回类型是 set # <class 'set'> # {1, 2, 3, 4}
# 计算l1 和 l2 的交集 l1 = [1, 1, 2, 2, 2, 3, 4] l2 = [2, 3, 3, 4, 5, 6, 6] s1 = set(l1) s2 = set(l2) u = s1 & s2 print(type(u)) print(u) # output,返回结果类型set # <class 'set'> # {2, 3, 4}
# 计算l1 和 l2 的并集, 并集符号 ‘|',intersection l1 = [1, 1, 2, 2, 2, 3, 4] l2 = [2, 3, 3, 4, 5, 6, 6] s1 = set(l1) # {1, 2, 3, 4} s2 = set(l2) # {2, 3, 4, 5, 6} u = s1 | s2 print(type(u)) print(u) # output,返回结果类型set, 计算 {1, 2, 3, 4} 和 {2, 3, 4, 5, 6} 的并集 # <class 'set'> # {1, 2, 3, 4, 5, 6}
# 计算差集,diff l1 = [1, 1, 2, 2, 2, 3, 4] l2 = [2, 3, 3, 4, 5, 6, 6] s1 = set(l1) # {1, 2, 3, 4} s2 = set(l2) # {2, 3, 4, 5, 6} print(s2) u = s1 - s2 print(type(u)) print(u) # output,返回结果是set # <class 'set'> # {1}
# set内也可以传入字符串,会自动转换成list类型 text1 = '北京市海淀区海淀区不想上班不想上班' res = set(text1) print(res) # 内部元素是一个个的字,去重 且 无序 # output # <class 'set'> # {'上', '北', '班', '海', '淀', '京', '不', '想', '区', '市'}
以上是Python中的re.findAll()、re.sub()、set()怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!