2013-07-16 4 views
0

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

/^"[^\s]+,\s*([a-zA-Z]{2})"$/ 

В принципе, я пытаюсь найти шаблон, который выглядит как XXXCITYXXX, [Statecode], где statecode составляет всего две буквы.

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

$state = uc($1) 

Однако, я не знаю эквивалентного синтаксиса Python. Кто-нибудь знает?

+1

Просто посмотрите на некоторые [основные примеры онлайн] (http://www.tutorialspoint.com/python/python_reg_expressions.htm). Например, вы хотите вызвать метод 'search' и получить доступ к' группе' в возвращаемом объекте соответствия. –

ответ

0

Вы можете сделать это с re.search, который возвращает объект match (если регулярное выражение соответствует вообще) с groups имущества, содержащего захваченные группы:

import re 
match = re.search('^[^\s]+,\s*([a-zA-Z]{2})$', my_string) 
if match: 
    print match.groups()[0] 
+0

Пробовал, но получение объекта typeError 'builtin_function_or_method' не имеет атрибута '__getitem__'. – Worcestershire

+0

Извините, забыл, что группы были методом вместо свойства - отредактировал мой ответ. –

+0

Только что переключил match.groups [0] на match.group(), и я все настроен. Благодаря! – Worcestershire

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