С учетом строки abc.
цель состоит в том, чтобы разбить ее на две группы: abc
и .
. На самом деле, меня интересует только группа до .
.Почему re.search не получает нужную группу, пока re.findall ее получает?
>>> import re
>>> text = 'abc.'
>>> re.search('^(\S+)\.$', text).group(0)
'abc.'
>>> re.findall('^(\S+)\.$', text)
['abc']
Почему re.search не получает нужную группу, а re.findall будет получать его?
Другой пример, где вход abc.def.
, то ожидать выход изолировать окончательный fullstop и получить abc.def
и .
. Так re.findall
получают его по своему желанию:
>>> re.findall('^(\S+)\.$', text)
['abc.def']
Но re.search
комков окончательного fullstop в первую группу.
>>> re.search('^(\S+)\.$', text).group(0)
'abc.def.'
Возможно ли re.search('^(\S+)\.$', text).group(0)
вернуться только abc.def
? Есть ли какие-то флаги, которые нужно установить?
Номера групп начинаются с 1. – user2357112