这是我的文本格式,我想把正则表达式传递到这个数据中
因为我创建了一个正则表达式,但它不起作用。(\S+)\s+(\d+.\d+)|(\S+)\s+(=\d+.\d+)
它没有给我预期的输出:
此数据位于TXT文件中,在单词start之前有许多空格
我附上了如何读取TXT文件以及如何在代码中使用这个正则表达式的代码
请帮帮我
HUWAN DIAGNOSTICO CENTER
epoc BGEM BLACk ASD
Patient ID: ALEN KON
Date & Time: 22 May-45 7:49:73
Results: Gases+
hUbo2 21.8. ssol/t vsdw
AE(k) =3.0 asdsddf/as
Cat+ 1.1 fasdl/ aoKw
Glu 38
Dac < 0.30
DH 7.350 - 7.450
iKo2 35.0 —- 48.0
LE(dcf) 2.0- 3.0
Lp+ 138 ~ 146
C1- 98 - 107 hjkkl/asL
LKu 74 ~ 100
Arsa 9.51 - 1.19
s$92 94.0 - 98.0 %
Sample type: Unspecified
Hemodi lution: No
Height: Not entered
Comments: Operator: user
预期产出:
字典(键:值列表)
Keys Values
hUbo2 21.8
AE(k) 3.0
Cat+ 1.1
Glu 38
Dac 0.30
DH 7.350 7.450
iKo2 35.0 48.0
LE(dcf) 2.0 3.0
Lp+ 138 146
C1- 98 107
LKu 74 100
Arsa 9.51 1.19
s$92 94.0 98.0
# code for How i read my txt file
for i, line in enumerate(open(mytext_file)):
for match in re.finditer(pattern, line):
try:
abcd = float(match.group(2).strip())
print('%s: %s' % (match.group(1), abcd))
except Exception:
pass
下面是一个小python脚本(包括正则表达式),当您通过stdin传输数据时,它会对数据进行转换:
下面是如何使用它及其输出:
(如果您在Windows上,请使用键入而不是cat。)
您可以使用可选的第三个组,而不必使用替换
|
,并检查它是否存在部分地
^
字符串的开头[^\S\r\n]*
匹配0+乘以除换行符以外的空白字符(\S+)
捕获组1,匹配1+非空白字符[^\d\r\n]+
匹配除换行符或数字以外的任何字符的1+倍(\d+(?:\.\d+)?)
捕获组2,将数字与可选的小数部分匹配[^\d\r\n]*
Match+乘以除换行符或数字以外的任何字符(\d+(?:\.\d+)?)?
可选捕获组3,将数字与可选小数部分匹配Regex demoPython demo
比如说
输出
使用提供的代码的示例:
相关问题 更多 >
编程相关推荐