我一直在尝试提取特定的模式,它看起来像字符串中的(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
,但也包括像DAAAJFF
,ECO
我尝试的另一件事是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']
希望这会有所帮助...