提取嵌套括号之间的内容

2024-09-29 19:32:34 发布

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

我想在ObjectUnionOf(和它后面的第一个闭括号之间提取:

<http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion>

EquivalentClasses(<http://www.ifomis.org/bfo/1.1/spanTemporalRegion> ObjectUnionOf(<http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion>))

我试过:

content=content[content.find("ObjectUnionOf(")+1:content.find(")")]

但它不起作用


Tags: orghttpwwwcontentfind括号objectunionofspanscatteredtemporalregion
2条回答

使用re.findall

import re

txt = '''EquivalentClasses(<http://www.ifomis.org/bfo/1.1/spanTemporalRegion> ObjectUnionOf(<http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion>))'''

print('\n'.join(re.findall(r'ObjectUnionOf\((.*)\)\)', txt)))

# <http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> 
# <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion> 

使用正则表达式:

import re
s = "EquivalentClasses(<http://www.ifomis.org/bfo/1.1/spanTemporalRegion> ObjectUnionOf(<http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion>))"
m = re.search("ObjectUnionOf\((?P<links>.*?)\)", s)
if m:
    print( m.group('links') )

输出:

<http://www.ifomis.org/bfo/1.1/spanScatteredTemporalRegion> <http://www.ifomis.org/bfo/1.1/spanConnectedTemporalRegion>

相关问题 更多 >

    热门问题