正则表达式捕捉正则表达式匹配上方的2行

2024-09-28 23:10:20 发布

您现在位置:Python中文网/ 问答频道 /正文

需要帮助在比赛后获得以上单词(颧骨,佐马,ZYGMA)吗 n、 m.(名词阳性)和n.f.(名词阴性)。 我尝试了不同的标志,如multiline和dotall,但仍然没有得到上面的主要单词运气。任何帮助都将不胜感激

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()

我用作示例的文本是:

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.

我将解析的主文件如下所示:

How the main file i'll parse looks like this


Tags: reosmainmatchlinede单词la
1条回答
网友
1楼 · 发布于 2024-09-28 23:10:20

表示搜索的单词大写:

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

相关问题 更多 >