Python 正则表达式部分摘录
Python regex partial extract
我想查找包含在 [[ ]]
这些括号中的所有数据。
[[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'
我想查找包含在 [[ ]]
这些括号中的所有数据。
[[aaaaa]] -> aaaaa
我的 python 代码(使用 re 库)是
la = re.findall(r'\[\[(.*?)\]\]', fa.read())
如果我只想从 [[a|b]]
这个任务有简明的正则表达式吗? (提取 |
之前的数据)
或者我应该使用额外的 if 语句吗?
你可以试试:
r'\[\[([^\]|]*)(?=.*\]\])'
([^\]|]*)
将匹配,直到找到 |
或 ]
。并且 (?=.*\]\])
是一个前瞻,以确保 ]]
在匹配的 RHS 上匹配。
测试:
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1)
'aaa'
>>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1)
'aaabbb'