記錄一些python正則匹配的實際應用場景示例,持續更新。
測試環境:python3
1. 目標場景: 提取不跟在特定字符後的指定字符
示例問題:
血氧飽和度提取 輸入字符形式類似 “SpO296”或者“SPO296”
96 爲目標數值,SpO2 中的O2爲氧氣 。所以問題可以轉化爲提取連續的數字,數字前的字符不能是SpO 或者SPO.
示例代碼:
input_str='SpO296'
import re
match_obj = re.search(r'(?<!SPO|SpO)\d+', input_str)
if match_obj:
print(match_obj.group())
提取結果爲: 96
2.目標場景: 時間描述抽取
示例問題:
抽取一段文本中的全部時間點,形式爲’xxx前’
例如:3天前,數日前,15分鐘前 等等
示例代碼
text_str='20余天前,xxx,數星期前,3天前,4天前,幾分鐘前'
import re
pattern=r'[\d數半幾]+[餘]*[天|日|星期|周|月|年|小時|分鐘]+[餘]*前'
res = re.findall(pattern,text_str)
print(res)
提取結果爲: [‘20余天前’, ‘數星期前’, ‘3天前’, ‘4天前’, ‘幾分鐘前’]