У меня есть very_largeString
, который содержит список слов и некоторые id. Я хотел бы извлечь все слова (с их идентификаторами), которые имеют RG
и AQ
, которые морфологически происходят последовательно и распечатывают остальную часть идентификатора. Выход только слово, и связанный с ним идентификатор, например: [('word','id'),('word','id')]
Проблемы с регулярным выражением?
very_largeString= ''' Hola hola I 1
compis compis NCMS000 0.500006
! ! Fat 1
No no RN 0.998045
sabía saber VMII3S0 0.592869
como como CS 0.999289
se se P00CN000 0.465639
ponía poner VMII3S0 0.65
una uno DI0FS0 0.951575
lavadora lavadora NCFS000 0.414738
hasta hasta SPS00 0.957698
que que PR0CN000 0.562517
conocí conocer VMIS1S0 1
esta este DD0FS0 0.986779
y y CC 0.999962
muy muy RG 1
sencilla malo AQ0MP0
es ser VSIP3S0 1
que que CS 0.437483
es ser VSIP3S0 1
muy muy RG 1
sencilla sencillo AQ0FS0 1
de de SPS00 0.999984
utilizar utilizar VMN0000 1
! ! Fat 1
'''
Это будет желаемый результат, так как они имеют на самого начало Ид символы RG и AQ, то я хочу, чтобы вернуться в полной мере id например:
[('muy', RG), ('sencillo', 'AQ0FS0'),('muy'),('malo','AQ0MP0')]
Проблема в том, что я получаю нулевой вывод. Это то, что я пробовал:
result = re.findall("(\S+)\s+(RG\S+).*\n.*\s(\S+)\s+(AQ\S+)",very_largeString)
Может кто-нибудь помочь мне исправить это регулярное выражение ?, Я не знаю, почему подмигнули неправильно.
Вам нужно использовать регулярное выражение? Я бы, наверное, просто разделил строку на строки и просто работал оттуда. –
какой выход вы хотите точно? –
Регулярные выражения Python по умолчанию не охватывают несколько строк. Вам нужно установить параметр [re.DOTALL] (https://docs.python.org/release/3.1.3/library/re.html#re.DOTALL) в findall – sirlark