Python正则表达式部分提取

时间:2015-09-28 03:14:57

标签: python regex extract partial

我想找到[[ ]]括号中的所有数据。

  

[[aaaaa]] - > AAAAA

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

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

如果我只想提取' a'来自[[a|b]]

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

或者我应该使用额外的if语句?

1 个答案:

答案 0 :(得分:3)

您可以尝试:

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

([^\]|]*)将匹配,直到找到|]为止。并且(?=.*\]\])是确保]]在匹配的RHS上匹配的预测。

<强>测试

>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1)
'aaabbb'