我是Python的新手,有一些简单的问题(但他们要杀了我)。
我想要一个代码,在"Dr. .“后面给我显示单词,但前提是,后面的单词是标题,就像”Dr.. Bernard“中的Bernard。就像我需要很多其他的东西一样,比如“医学”。等等..。
这里我的代码:
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我想摆脱那个“博士”还有“医学”。多么?还是有更好的方法来解决这个问题?
发布于 2014-10-08 11:08:23
只需打印组索引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.发布于 2014-10-08 11:05:27
(?<=Dr.)\s*(\b[A-Z]\w+\b)尝试this.Grab match.See演示。
http://regex101.com/r/hQ1rP0/75
https://stackoverflow.com/questions/26255349
复制相似问题