我想要匹配"[ )"或者 "( ]"中的内容,于是我写了这样一个正则:
`str = '[123)(abc]'
m = re.findall('[(.?))|((.?)]',str)`
我想要得到[’123‘ , ’abc‘]这样一个数组结果
但结果是[('123', ' '), (' ', 'abc')]
我应该如何修改?
我想要匹配"[ )"或者 "( ]"中的内容,于是我写了这样一个正则:
`str = '[123)(abc]'
m = re.findall('[(.?))|((.?)]',str)`
我想要得到[’123‘ , ’abc‘]这样一个数组结果
但结果是[('123', ' '), (' ', 'abc')]
我应该如何修改?
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
像这种需要匹配前后有特定字符的内容,用 零宽断言 比较合适。
findall
多个子捕获成功,会以元组组成的列表呈现结果正解如下