需要帮助得到上述单词(颧骨,佐马,ZYGMA)后,匹配名词男性。我试过不同的旗帜,如多行和多特,但仍然没有运气得到以上的主要词。如有任何帮助,将不胜感激。
import re
def main():
mytext = open("m.txt")
mypattern = re.compile('n. (m.|f.)')
for line in mytext:
match = re.search(mypattern, line)
if match:
print(match.group())
if __name__ == "__main__":
main()我作为示例使用的文本是:
颧骨 解剖学硕士。拉焦厄人。 佐马 解剖学硕士。拉焦厄人。 ZYGMA 解剖学硕士。拉焦厄人。
我将解析的主文件是什么样子的:

发布于 2018-07-22 12:07:21
意味着搜索的单词是大写的:
import re
text = """
ZYGOMA
n. m. T. d'Anatomie . Os de la pommette de la joue.
ZOMA
n. m. T. d'Anatomie . Os de la pommette de la joue.
ZYGMA
n. m. T. d'Anatomie . Os de la pommette de la joue.
A B C
n. m. T. d'Anatomie . Os de la pommette de la joue.
"""
g = re.findall(r'([A-Z][A-Z ]*)\s+(?=n\. m|f)', text)
print(g)将印刷:
['ZYGOMA', 'ZOMA', 'ZYGMA', 'A B C']对于Unicode大写单词,解决方案如下:Python regex for unicode capitalized words
https://stackoverflow.com/questions/51464839
复制相似问题