Python 正規表示式 尋找字串+擷取字串+去重複

使用 re.compile 、 pattern.findall()及  Set() 來達到尋找+擷取+去除重複

 

pattern = re.compile( r  '要找字串 的正規表示法' 
matches = pattern.findall( 所有字串 )

 

範例程式碼

import re

#使用 re.compile 
pattern = re.compile(r'\( (\d ) \| (\d ) \)')

#利用Set集合來去除重複字串
NumSet = set()

AllString = '''
( 29266795 | 533 )
( 29370116 | 123 )
( 29467495 | 511 )
( 29500404 | 533 )
( 29500622 | 611 )
( 29515964 | 531 )
( 29516015 | 530 )
( 29520954 | 774 )
'''

#把相符字串放進matches
matches = pattern.findall(AllString)
for did,dt in matches:
    NumSet .add(dt) 

#印出結果
print (NumSet)

正規表示工具:

 

正規表示式

常用元字符

代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或数字或下底線
\s 匹配任意的空白符
\d 匹配數字
\b 匹配單詞為開頭或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

常用限定符

代碼 說明
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

常用反義词

代碼 说明
\W 匹配任意不是字母,數字,下底線,中文字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數字的字符
\B 匹配不是單詞開頭或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

 

 

 

 

 

 

 

 

 

 


參考資料:https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/370370/

 


人生美好~別浪費腦容量記程式碼 :- ) 

作者:CYL
出處:http://dotblogs.com.tw/cylcode
資料來源都會特別註明,有興趣都可查詢原出處,本站皆經過整理才分享,如有轉載請顯示出處及作者,感謝。