[英]use regex to parse string using python
我正在為我的客戶開發示例代碼,之前沒有用 Python 進行過編程。 如何使用正則表達式提取下面的文本?
RSH|^~\&|MIC|SCC|MS4OD|A|201804060738||ORU^R01|0137245|P|2.2
KID|||10552884||Fer^Huh^GRV||20223164433|M||W|193 Biop Mill
我想從第一行中提取 0137245,從第二行中提取 10552884。
RSH|^~\&|MIC|SCC|MS4OD|A|201804060738||ORU^R01|0137246|P|2.3
KID|||10552885||Fer^Huh^GRV||2023164434|M||W|193 jason Mill
我想從第一行中提取 0137246,從第二行中提取 10552885。
示例 3
RSH|^~\&|MIC|SCC|MS4OD|A|201804060738||ORU^R01|01372451.1|P|2.2
KID|1||10552884||Fer^Huh^GRV||20223164433|M||W|193 Biop Mill
我想從第一行中提取 01372451.1,從第二行中提取 10552884。
示例 4
RSH|^~\&|MIC|SCC|MS4OD|A|201804060738||ORU^R01|01372451.1|P|2.2
KID|1|2|10552884||Fer^Huh^GRV||20223164433|M||W|193 Biop Mill
我想從第一行中提取 01372451.1,從第二行中提取 10552884。
有什么建議?
根據您給出的示例,您可以使用
regex1=re.compile('\|\|ORU\^R01\|(\d+(?:\.\d+)?)\|')
regex2=re.compile('^KID\|\d?\|\d?\|(\d+)\|')
match1=regex1.search(firstRow)
if match1 is not None:
print(match1.groups()[0])
match2=regex2.search(secondRow)
if match2 is not None:
print(match2.groups()[0])
這是從行或任意行數中獲取數字的解決方案
str = 'RSH|^~\&|MIC|SCC|MS4OD|A|201804060738||ORU^R01|0137246|P|2.3KID|||10552885||Fer^Huh^GRV||2023164434|M||W|193 jason Mill '
res = re.findall(r'\b\d{7,8}\b',str)
print(res)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.