我有一系列语法分析的文本:
s = 'ROOT (S (VP (VP (VB the) (SBAR (S (NP (DT same) (NN lecturer)) (VP (VBZ says)'
我想把'same'和'same'匹配。关键是'the'和'same'只有在用语法标记隔开时才匹配(例如,(,NP,s等)。因此,“相同”不应在s2中找到匹配项:
^{pr2}$我尝试过双重否定的前瞻性断言,但没有成功:
>>>rx = r'the(?![a-z]*)same(?![a-z]*)'
>>>re.findall(rx,s)
[]
这样做的目的是在后面不跟小写字符时匹配“The”,然后在后面不跟小写字符时匹配“same”。在
有人有更好的方法吗?在
因此,如果}之间的所有字符都不是小写字母,那么您可以在regex中这样写:
the
和{请注意,您可能还需要添加单词边界,这样就不会匹配
^{pr2}$foothe ... samebar
之类的内容,如下所示:相关问题 更多 >
编程相关推荐