Python: поиск переменной в строке - PullRequest
1 голос
/ 03 октября 2011

В настоящее время у меня есть некоторый код, который идет по URL, выбирает исходный код, и я пытаюсь заставить его вернуть переменную из строки.Поэтому я создал:

changetime = refreshsource.find ('VARIABLE pm NST')

Но он не найдет область в строке, потому что слово не VARIABLE, это что-то другое,Как мне извлечь из этой строки постоянно меняющуюся переменную?

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

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

import re
# this will match 01:23, 11:34, 12:00, etc.
timex = re.compile('.*(\d{2}:\d{2})[ ]?pm NST')
match = timex.match(text, re.M|re.S)
variable = match.groups(0)

Редактировать: этот код действительно будет работать (в отличие от первой попытки :)):

import re
# this will match 01:23, 11:34, 12:00, etc.
timex = re.compile('(\d{2}:\d{2})[ ]?pm NST')

match = timex.search(text)
if match:
    variable = match.groups(0)
1 голос
/ 03 октября 2011

Если шаблон действительно такой простой, то это типичный случай, когда регулярные выражения весьма полезны.
Примечание: если вы новичок в регулярных выражениях, вы можете использовать некоторое введение, например, http://www.regular -expressions.info .

С другой стороны, если шаблон более сложный, вы можете использовать анализатор HTML, например, BeautifulSoup .

...