我希望找到所有被 [[ ]]
括起来的数据。
[[aaaaa]] -> aaaaa
我的 Python 代码(使用 re 库)如下:
la = re.findall(r'\[\[(.*?)\]\]', fa.read())
如果我只想从[[a|b]]
中提取 'a',该怎么办?
有没有简洁的正则表达式可以完成这个任务?(提取|
之前的数据)
或者我应该使用额外的if语句?
r'\[\[([^\]|]*)(?=.*\]\])'
([^\]|]*)
将匹配直到找到|
或]
。而(?=.*\]\])
则是一个前瞻,以确保]]
在匹配的右侧。
测试:
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1)
'aaabbb'