Будучи в состоянии обнаружить int в строках, Python - PullRequest
0 голосов
/ 07 февраля 2011

Я пытаюсь отделить число от строки в Python. В принципе, я хочу, чтобы, если color == 'grey' + число, то оно вернет это число. Например, если цвет равен 'grey23', он вернет 23. Если цвет равен 'серый', это вызовет оператор else.

псевдокод:

# = an int

def func (color):
    if color == 'gray' and a # :
        return int(#)
    else:
        print 'pass'

Ответы [ 3 ]

4 голосов
/ 07 февраля 2011
import re

def func (color):
    try:
        return int(re.search('(\d+)$',color).group(0)))
    except AttributeError:
        print 'pass'
2 голосов
/ 07 февраля 2011

Вы можете использовать регулярные выражения для этого:

import re

matches = re.match('\w+(\d+)', color)
result = matches.groups()
if(len(result) > 0):
    return result[0]
else:
    return 'pass'

Не проверено, поэтому может содержать ошибки, но это основная суть.

1 голос
/ 07 февраля 2011
if color.startswith("grey") and color[4:].isdigit():
    return int(color[4:])
else:
    return 'pass'

color[4:] может быть заменено чем-то более общим, чем жестко закодированное значение 4, но, поскольку "серый" (или "серый" - вы используете оба) жестко закодирован, казалось, с этим проблем нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...