поиск по регулярному выражению в python - PullRequest
1 голос
/ 10 мая 2010

Я пытаюсь разобрать некоторые данные и просто начал читать регулярные выражения, поэтому я довольно новичок в этом. Это код, который я до сих пор

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

Ответы [ 6 ]

2 голосов
/ 10 мая 2010
re.search( r"Oxygen: *([\d.]+)", String ).group( 1 )
1 голос
/ 10 мая 2010
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 голосов
/ 10 мая 2010

Я думаю, что ответ на конкретную проблему был опубликован. Однако я хотел бы показать вам несколько ресурсов для регулярного выражения для Python. Документация Python по регулярному выражению - это то место, с которого нужно начинать.

О'рейли также имеет много хороших книг по этому вопросу , либо если вы хотите понять регулярные выражения в глубине души, либо просто достаточно, чтобы заставить вещи работать.

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

0 голосов
/ 10 мая 2010

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

  9 emailregex = "^[a-zA-Z.a-zA-Z]+@mycompany.org$"
 10
 11 def validateEmail(email):
 12         """returns 1 if is an email, 0 if not """
 13         # len(x.y@mycompany.org) = 17
 14         if len(email)>=17:
 15                 if re.match(emailregex,email)!= None:
 16                         return 1
 17         return 0
0 голосов
/ 10 мая 2010

Для общего разбора списков, подобных этому, можно

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])))
0 голосов
/ 10 мая 2010

Зачем?

print String.split()[4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...