2016-04-04 1 views
-2

я встречаю re.match вопросы при изучении Python кода следующее: def pythonReSubDemo(): inputstr='hello 111' def add(matched): intvalue=matched.group(0) ... re.sub('\d+',add,inputstr) питон match.group(), но не mmatched

там не использовать спичку согласованного любого регулярного выражения, почему можно использовать match.group()

+0

Исправьте форматирование пожалуйста. – idjaw

+0

Использовать 'intvalue = matched.group (0)' –

ответ

1

Regex группы в круглых скобках:

re.sub('(\d+)',add,inputstr) 

Regex101 Demo

+2

Нет смысла в группе захвата, так как значение соответствия сохраняется в '.group (0)' –

0

Назвать использование группы следующий синтаксис:

(?P<number> ...) 

re.sub('(?P<number>\d+)', add, inputstr) 

>>> def add(matched): 
...  return str(int(matched.group('number')) + 1) 
... 
>>> inputstr='hello 111' 
>>> re.sub('(?P<number>\d+)', add, inputstr) 
'hello 112' 
+0

благодаря этому эквиваленту соответствия ('\ d +', inputstr) ? – firstg

+0

'\ d +', а не '\ d'. и сопоставляемая группа может быть доступна с помощью имени группы 'number':' matched.group ('number') ' – falsetru

+0

i означает, что я хочу, чтобы это ключевое слово (args) соответствовало не совпадению func, почему я могу использовать match.group () – firstg

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