使用 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
資料來源都會特別註明,有興趣都可查詢原出處,本站皆經過整理才分享,如有轉載請顯示出處及作者,感謝。