касательно последующего У меня есть строка синтаксически разобранного текста:Python регулярное выражение, два негативных высказываний
s = 'ROOT (S (VP (VP (VB the) (SBAR (S (NP (DT same) (NN lecturer)) (VP (VBZ says)'
я хотел бы, чтобы соответствовать «то же» в с. Это ключ, что «» и «же» соответствует только при разделенных синтаксической разметки (т.е. (НП, S и т.д.) Таким образом, «то же» НЕ должен найти матч в s2:.
s2= 'ROOT (S (VP (VP (VB the) (SBAR (S (NP (DT lecturer) (NN same)) (VP (VBZ says)'
Я попытался двойной отрицательный опережения утверждение не дало никаких результатов:
>>>rx = r'the(?![a-z]*)same(?![a-z]*)'
>>>re.findall(rx,s)
[]
идея заключается в том, чтобы match'the», когда не следует строчными буквами, а затем матч„же“, когда не следует строчными буквами
.У кого-нибудь есть лучший подход?
Регулярные выражения не являются хорошими при анализе вложенных структур. Этого может быть достаточно для вашего конкретного примера, поскольку вы, похоже, не заботитесь о гнездовании. –
Правильно, вложенная структура не является проблемой. Эта же проблема возникает при попытке сопоставить «то же самое» с строкой «theABCD123sameEFG456» – Renklauf