对于一组典型的单词后缀(ize,fy,ly,able ...等),我想知道给定的单词是否以其中任何一个结尾,然后将其删除.我知道这可以用word.endswith('ize')迭代完成,但是我相信有一种更整洁的正则表达方式.尝试使用结束标记$的积极前瞻但是由于某种原因不起作用:
pat='(?=ate|ize|ify|able)$'
word='terrorize'
re.findall(pat,word)
Run Code Online (Sandbox Code Playgroud)
鲜为人知的事实:endswith接受一系列可能性:
if word.endswith(('ate','ize','ify','able')):
#...
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有指出找到了哪个字符串,因此删除后缀没有帮助.