2014-09-07 4 views
-5
\b(?:AN|AcntNumber) : (\w+) 

вышеприведенные регулярных выражений печатает 'AcntNumber', аСтроительство регулярное выражение для Python

AcntNumber : c422731c7c2a4f9cbe98fbfbf410265f 

, но я хочу только, чтобы напечатать c422731c7c2a4f9cbe98fbfbf410265f. Кто-нибудь может мне помочь?

+3

Существует уже группа записи для шестнадцатеричного значения. Какой код Python вы используете здесь? Вы можете просто использовать '.group (1)' в объекте match. –

+0

Спасибо за отзыв. @MartijnPieters –

ответ

1

Разделите строку с :, и у вас есть номер вашей учетной записи.

>>> string = "AcntNumber : c422731c7c2a4f9cbe98fbfbf410265f" 
>>> frags = string.split(':') 
>>> number = frags[1].strip() 
>>> number 
'c422731c7c2a4f9cbe98fbfbf410265f' 

Или:

>>> import re 
>>> string = "AcntNumber : c422731c7c2a4f9cbe98fbfbf410265f" 
>>> e = "\b?:AN|AcntNumber : (\w+)" 
>>> ext = re.findall(e, string) 
>>> ext[0] 
'c422731c7c2a4f9cbe98fbfbf410265f' 
>>> 
+1

Почему 'replace()' когда вы можете иметь 'strip()'? Или просто 'string.partition (':') [- 1]'. –

+0

Не думал об этом, Извините! –

+1

И не используйте 're.findall()', если вы не ожидаете возможности нескольких совпадений. –

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