我是Python的新手并且有一些简单的问题(但是他们会杀了我)。
我想要一个代码,告诉我“博士”之后的单词,但只有,如果下面的单词是标题,就像Bernard在“伯纳德博士”中那样。我需要许多其他东西,比如“med”。等等...
这是我的代码:
sentence = "Dr. Mobuis is a good person. Dr. med. Peter isnt."
for m in re.finditer("(Dr\.|med\.)\s([A-Z][a-z]+)", sentence):
print '%02d-%02d: %s' % (m.start(), m.end(), m.group(0))
好吧,现在我明白了:
00-10: Dr. Mobuis
33-43: med. Peter
我想摆脱那个“博士”和“医学”。怎么样?或者有更好的方法来解决问题吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
只需打印组索引2而不是组索引0。
>>> for m in re.finditer("(Dr\.|med\.)\s([A-Z][a-z]+)", sentence):
... print '%02d-%02d: %s' % (m.start(), m.end(), m.group(2))
...
00-10: Mobuis
33-43: Peter
<强>更新强>
>>> for m in re.finditer("(Dr\.|med\.)\s([A-Z][a-z]+)\s\S+", sentence):... print '%02d-%02d: %s - context is %s' % (m.start(), m.end(), m.group(2),m.group(0))
...
00-13: Mobuis - context is Dr. Mobuis is
33-49: Peter - context is med. Peter isnt.