0
我有语法解析文本字符串:Python的正则表达式,两个负前瞻陈述
s = 'ROOT (S (VP (VP (VB the) (SBAR (S (NP (DT same) (NN lecturer)) (VP (VBZ says)'
我想匹配“同”为s。它的关键是“的”和“同”只有当语法标记(分离即(,NP,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”不跟时小写字母,然后匹配‘相同’时,不跟小写字符
。有没有人有更好的方法?
正则表达式不擅长解析嵌套结构。由于您似乎不关心嵌套,因此您的具体示例可能已足够。 –
对,嵌套结构不是问题。当试图将'相同'与字符串'ABCD123sameEFG456' – Renklauf