2010-05-10 4 views
1

Я пытаюсь разобрать некоторые данные и только начал читать на регулярных выражениях, поэтому я довольно новичок в этом. Это код, который я до сих порпоиск регулярного выражения в 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

+1

'String' является допустимым, но запутанным именем переменной в Python. – msw

ответ

1
import re 
string = "blabla Oxygen:  10.10 blabla" 
regex_oxygen = re.compile('''Oxygen:\W+([0-9.]*)''') 
result = re.findall(regex_oxygen,string) 
print result 
0

Для чего?

print String.split()[4] 
+0

Чтобы убедиться, что я не получаю мусор для данных. Если нет совпадения, я могу справиться с этим каким-то другим способом. – Richard

+0

Итак, убедитесь, что элемент '[3]' равен «Кислород:». –

2
re.search(r"Oxygen: *([\d.]+)", String).group(1) 
+0

nit-pick: 'r'Oxygen: \ s * (\ d + (\. \ D +)?) '', Скорее всего, попадет на неожиданный ввод, так как ему не требуется пространство между« Oxygen: »и значением и будут принимать целые числа, а также реалы. «Будь либерален в том, что принимаешь» -Jon Postel – msw

0

Для общего синтаксического анализа списков, как этот мог

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]))) 
-1

Я хотел бы поделиться моим? Это письмо? regex expresion, просто чтобы вдохновить вас. :)

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 
0

Я считаю, что ответ на конкретную проблему был опубликован. Однако я хотел показать вам несколько ressource для регулярного выражения для python. python documentation on regular expression - это место для начала.

У O'reilly также есть many good books on the subject, либо если вы хотите понимать регулярное выражение в глубину или просто для того, чтобы все работало.

Наконец regular-expressions.info является хорошим источником регулярного выражения среди основных языков. Вы даже можете проверить свое регулярное выражение на веб-сайте.

Смежные вопросы