Python正则表达式部分提取

我想查找括在[[ ]]所有数据。

[[aaaaa]] - > aaaaa

我的Python代码(使用re库)是

la = re.findall(r'[[(.*?)]]', fa.read())

如果我只想从[[a|b]]提取'a',该怎么办

任何这个任务简洁的正则表达式? (提取数据之前|

还是应该使用额外的if语句?


你可以试试:

r'[[([^]|]*)(?=.*]])'

([^]|]*)将匹配到|]找到。 并且(?=.*]])是一个预见,以确保]]在匹配的RHS上匹配。

测试:

>>> re.search( r'[[([^]|]*)(?=.*]])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'[[([^]|]*)(?=.*]])', '[[aaabbb]]' ).group(1)
'aaabbb'
链接地址: http://www.djcxy.com/p/29459.html

上一篇: Python regex partial extract

下一篇: Preventing Overwriting Deployments using Artifactory