re.compile() python:获取特定模式的问题



我一直在尝试提取特定的模式,它看起来像字符串中的(PSSA)(FJFD10)

在这样的字符串中,我想提取一些括号内的内容,在这种情况下(PNDM)。但是,我想打印它而不带括号。

eg_string = """DAAAAAAJFF: Hellllllllo (PNDM)
CC       [MIM:606176]: Blalblablalbalbl. {CCO:0000069|Pubd:160,
CC       ECO:0000269|PubMed:18162506}. Note=elllelefjfjfjf HAahndfd
"""

我所做的是:

patti = re.compile(r'([A-Z]+)')
www = patti.findall(eg_string)

然而,这给了我比我需要的更多的东西。它确实包括PNDM,但也包括像DAAAJFFECO

我尝试的另一件事是r'(^[A-Z]+)我知道它只会打印出DAAAAAJFF。我想知道如何打印字符串中间的(PNDM)

使用正则表达式:r"([A-Z]+)"获取包含()的文本结果。

演示:https://regex101.com/r/e2gyly/1

解释:

( - will look for opening brace (
[A-Z] - any char between range A to Z 
) - closing brace )

在这里([A-Z]+)被认为是像 A-Z 这样的模式,但您需要将其更改为(([A-Z]+))你的代码会像

import re
eg_string = """DAAAAAAJFF: Hellllllllo (PNDM)
CC       [MIM:606176]: Blalblablalbalbl. {CCO:0000069|Pubd:160,
CC       ECO:0000269|PubMed:18162506}. Note=elllelefjfjfjf HAahndfd
"""
patti = re.compile(r'(([A-Z]+))')
www = patti.findall(eg_string)
print(www)
#Output : ['PNDM']

希望这会有所帮助...

最新更新