«Non-отлов группа» относится к тому факту, что соответствует в этой группе не будет доступен в виде отдельных групп в результате матча OBJE кт. Например:
>>> re.search('(foo)(bar)', 'foobarbaz').groups()
('foo', 'bar')
>>> re.search('(foo)(?:bar)', 'foobarbaz').groups()
('foo',)
Однако, все, что является частью выражения соответствует и как таковой появляется в результате матча (группа 0 показывает весь матч):
>>> re.search('(foo)(bar)', 'foobarbaz').group(0)
'foobar'
>>> re.search('(foo)(?:bar)', 'foobarbaz').group(0)
'foobar'
Если вы дон «т хочет, чтобы соответствовать той части, но все еще хочет, чтобы убедиться, что там, вы можете использовать выражение опережения:
>>> re.search('(foo)(?=bar)', 'foobarbaz')
<_sre.SRE_Match object; span=(0, 3), match='foo'>
>>> re.search('(foo)(?=bar)', 'foobaz')
None
Так что в вашем случае, вы могли бы использование (.*?(?= *?\n))
.
Группа не-захвата не группируется, но соответствует. – Maroun
Вы запросили механизм регулярного выражения, чтобы он соответствовал ему \ n. –
'\ n' находится в группе, не связанной с захватом, но почему она захвачена? –