写一段python代码,用正则在1.txt中筛选出ZZ开头后面跟着10个数字的数据,并按出现的顺序导出:思路如下,先创建一个列表用来存储筛选出的数据,用一个元组的值表示出现的位置,最后按大小排序
时间: 2023-12-10 18:40:11 浏览: 33
以下是根据您的思路编写的Python代码:
```python
import re
data_list = []
with open('1.txt', 'r') as f:
data = f.read()
pattern = re.compile(r'ZZ\d{10}')
match = pattern.finditer(data)
for m in match:
data_list.append((m.start(), m.group()))
data_list.sort()
with open('output.txt', 'w') as f:
for item in data_list:
f.write(f"{item[0]}: {item[1]}\n")
```
代码解释:
- 首先,我们打开名为`1.txt`的文件,并读取其中的内容。
- 接着,我们使用正则表达式`ZZ\d{10}`匹配所有以`ZZ`开头后面跟着10个数字的数据,并将匹配到的结果加入到`data_list`列表中。其中,`m.start()`表示匹配到的子字符串在原始文本中的起始位置。
- 最后,我们按照子字符串在原始文本中的起始位置对`data_list`进行排序,并将结果输出到名为`output.txt`的文件中。其中,`item[0]`表示子字符串在原始文本中的起始位置,`item[1]`表示匹配到的子字符串。