有如下数据:[['余华 / 作家出版社 / 2012-8-1 / 20.00元'], ['[英] 乔治·奥威尔 / 刘绍铭 / 北京十月文艺出版社 / 2010-4-1 / 28.00']],如何通过遍历和正则表达式,得到[['余华', '', '作家出版社', '2012-8-1', '20.00元'], ['[英] 乔治·奥威尔', '刘绍铭', '北京十月文艺出版社', '2010-4-1', '28.00']]
时间: 2023-08-06 07:15:29 浏览: 376
您可以使用Python的re模块中的正则表达式来实现。具体步骤如下:
1. 导入re模块
```python
import re
```
2. 遍历数据列表,对每个元素应用正则表达式进行匹配和替换
```python
for i in range(len(data)):
# 匹配出作者和译者
author = re.findall(r'^(.*?) /', data[i][0])
translator = re.findall(r'/ (.*?) /', data[i][0])
if translator:
data[i][0] = re.sub(r'^(.*?) / (.*?) / (.*?) / (.*?) / (.*?)$', r'\1[\2] \3 / \4 / \5', data[i][0])
else:
data[i][0] = re.sub(r'^(.*?) / (.*?) / (.*?) / (.*?)$', r'\1 \2 / \3 / \4', data[i][0])
data[i][0] = [author[0], translator[0] if translator else '', *data[i][0].split(' / ')[1:]]
```
3. 最后得到的结果即为[['余华', '', '作家出版社', '2012-8-1', '20.00元'], ['[英] 乔治·奥威尔', '刘绍铭', '北京十月文艺出版社', '2010-4-1', '28.00']]
阅读全文