Свойство объекта является целым числом, для очистки ввода нужно использовать регулярное выражение, ища хороший стиль - PullRequest
0 голосов
/ 31 июля 2010

У меня есть текст, который выглядит так:

California(2342)

У моего объекта есть свойство, которому нужно присвоить значение 2342.

Я ищу информацию о том, как это сделать, и защищаюсь от возможных ошибок во вводе.

c = SomeClass()

c.count = re.compile(r'(\d*)').groups[0]

Это выглядит нормально? Или я должен сделать оператор IF и установить счетчик в 0, если ввод был неверным?

P.S любая помощь в регулярном выражении приветствуется, это мой первый серьезный скрипт на python.

1 Ответ

2 голосов
/ 31 июля 2010
import re

pat = re.compile(r'\w+\((\d+)\)')

s = 'California(2342)'
match = pat.match(s)
if match:
    c.count = match.group(1)
    print c.count
    # '2342'
else:
    c.count = '0'  # or 0 if numeric

Если вы хотите вернуть число вместо строки, просто измените:

value = int(match.group(1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...