我想找到[[ ]]
括号中的所有数据。
[[aaaaa]] - > AAAAA
我的python代码(使用re库)是
la = re.findall(r'\[\[(.*?)\]\]', fa.read())
如果我只想提取' a'来自[[a|b]]
此任务的任何简洁正则表达式? (在|
之前提取数据)
或者我应该使用额外的if语句?
答案 0 :(得分:3)
您可以尝试:
r'\[\[([^\]|]*)(?=.*\]\])'
([^\]|]*)
将匹配,直到找到|
或]
为止。并且(?=.*\]\])
是确保]]
在匹配的RHS上匹配的预测。
<强>测试强>
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1)
'aaabbb'