正则表达式在正则表达式匹配项上方捕获2行

时间:2018-07-22 11:53:46

标签: python regex

赛后需要帮助获得上述单词(ZYGOMA,ZOMA,ZYGMA) 。 m。(名词男性)和n。 f。(名词女性)被发现。 我已经尝试了多行和dotall等不同的标志,但是仍然没有运气获得上面的主要关键词。任何帮助将不胜感激

4

我用作示例的文本是:

  

ZYGOMA

     

n。米T. d'Anatomie。德拉Pommette de la joue街。

     

ZOMA

     

n。米T. d'Anatomie。德拉Pommette de la joue街。

     

ZYGMA

     

n。米T. d'Anatomie。德拉Pommette de la joue街。

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

How the main file i'll parse looks like this

1 个答案:

答案 0 :(得分:1)

表示要搜索的单词大写:

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