Python中的正则表达式搜索
我想解析一些数据,并开始阅读正则表达式,所以我对它很新颖。这是我到目前为止的代码Python中的正则表达式搜索
String = "MEASUREMENT 3835 303 Oxygen: 235.78 Saturation: 90.51 Temperature: 24.41 DPhase: 33.07 BPhase: 29.56 RPhase: 0.00 BAmp: 368.57 BPot: 18.00 RAmp: 0.00 RawTem.: 68.21"
String = String.strip('\t\x11\x13')
String = String.split("Oxygen:")
print String[1]
String[1].lstrip
print String[1]
我所试图做的是做的是去除氧气数据(235.78),并使用正则表达式搜索把它放在自己的变量。我意识到应该有一个简单的解决方案,但我想弄清楚正则表达式是如何工作的,它们让我的头部受伤。谢谢你的帮助
Richard
import re
string = "blabla Oxygen: 10.10 blabla"
regex_oxygen = re.compile('''Oxygen:\W+([0-9.]*)''')
result = re.findall(regex_oxygen,string)
print result
什么?
print String.split()[4]
确保我没有收到数据垃圾。如果没有匹配,我可以用其他方式处理它 – Richard 2010-05-10 15:33:01
因此,请确保元素'[3]'等于'氧气:'。 – 2010-05-10 15:39:18
re.search(r"Oxygen: *([\d.]+)", String).group(1)
nit-pick:'r'Oxygen:\ s *(\ d +(\。\ d +)?)''更容易碰到意外的输入,因为它不需要'Oxygen:'和值之间的空格,将接受整数和实数。 “在你接受的内容中保持自由”--Jon Postel – msw 2010-05-10 15:47:32
对于这样一个名单的一般分析可以
import re
String = "MEASUREMENT 3835 303 Oxygen: 235.78 Saturation: 90.51"
String = String.replace(':','')
value_list=re.split("MEASUREMENT\W+[0-9]+\W+[0-9]+\W",String)[1].rstrip().split()
values = dict(zip(value_list[::2],map(float,value_list[1::2])))
我想和大家分享我的?这是一个电子邮件?正则表达式,只是为了激励你。 :)
9 emailregex = "^[a-zA-Z.a-zA-Z][email protected]$"
10
11 def validateEmail(email):
12 """returns 1 if is an email, 0 if not """
13 # len([email protected]) = 17
14 if len(email)>=17:
15 if re.match(emailregex,email)!= None:
16 return 1
17 return 0
我相信你的具体问题的答案已发布。不过,我想向您展示python正则表达式的一些资源。 python documentation on regular expression是开始的地方。
O'reilly也有many good books on the subject,要么是要深入了解正则表达式,要么足以让事情发挥作用。
最后regular-expressions.info是主流语言中正则表达式的一个很好的资源。你甚至可以在网站上测试你的正则表达式。
'String'在Python中是一个有效但易混淆的变量名。 – msw 2010-05-10 15:49:35