2014-01-30 6 views
0

Я написал ниже данный код, чтобы соответствовать строке фиксированной длины 10, которая содержит все цифры.Соответствие регулярному выражению Python не работает

import re 
result=re.match("^d{10}$", u"5478512045") 

Но он не возвращает None. Я не знаю, почему это терпит неудачу. Пожалуйста, поправьте меня, если я буду делать что-то неправильно.

ответ

1

Вам не хватает побега \ на контрольном персонаже d. Оно должно быть:

result=re.match("^\d{10}$", u"5478512045") 

Без \ до d, ваше регулярное выражение пытается соответствовать буквальное d строку. Изменяя это на \d, вы соответствуете специальному символу для любой десятичной цифры.

+0

спасибо Mark. Теперь я получаю возвращаемое значение как «объект <_sre.SRE_Match в 0x02A27138>». Скажите, пожалуйста, как мне проверить, прошло или не прошло. – gliese581g

+2

'result.group()' будет печатать результат совпадения. Тот факт, что у вас есть объект <_sre.SRE_Match в 0x02A27138> ', однако означает, что вы имеете совпадение. – danasilver

+1

@ dsilver1221 верен. Тот факт, что вы возвращаете объект, означает, что вы имеете совпадение. Возвращение «Нет» (как и раньше) означает отсутствие соответствия. Проверьте документацию модуля 're' (http://docs.python.org/2/library/re.html#re.match), это довольно полно. –

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