2014-02-21 2 views
0

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

string = "hello world & bello stack 12456"; 

findObj = re.match(r'[0-9]+',string,re.I); 

if findObj: 
    print findObj.group(); 
else: 
    print "nothing matched" 

С уважением

+0

Используйте 're.search'. –

ответ

3

re.match должен совпадать с начала строки. Используйте вместо этого re.search.

+0

И как я могу найти длину групп? Возвращает ли каждая подстрока группа (i)? –

+0

're.search' находит только первое совпадение (если есть). Если вам нужны все совпадения, используйте [re.findall] (http://docs.python.org/2/library/re.html#re.findall). – unutbu

+0

спасибо большое. Если вы можете направить меня к легкому изучению документации/учебника python, как и документации на Android, это было бы здорово. –

3

re.match соответствует началу строки. Использование re.search

>>> my_string = "hello world & bello stack 12456" 
>>> find_obj = re.search(r'[0-9]+', my_string, re.I) 
>>> print find_obj.group() 
12456 

P.S запятая не нужна.

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