SUN*_*ONG 7 python regex extract partial
我想找到[[ ]]这些括号中的所有数据.
[[aaaaa]] - > aaaaa
我的python代码(使用re库)是
la = re.findall(r'\[\[(.*?)\]\]', fa.read())
Run Code Online (Sandbox Code Playgroud)
如果我只想从中提取'a'怎么办? [[a|b]]
这个任务有任何简洁的正则表达式吗?(之前提取数据|)
或者我应该使用额外的if语句?
你可以试试:
r'\[\[([^\]|]*)(?=.*\]\])'
Run Code Online (Sandbox Code Playgroud)
([^\]|]*)将匹配直到找到|or]为止。并且(?=.*\]\])是一个前瞻,以确保]]在匹配的 RHS 上匹配。
测试:
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1)
'aaabbb'
Run Code Online (Sandbox Code Playgroud)