使用正则表达式只输出1、5、9、13等所在行的数据
时间: 2023-07-04 11:22:51 浏览: 52
假设您想要从一个文本文件中输出1、5、9、13等所在行的数据,您可以使用类似于下面的正则表达式:
```
^(?:.*\n){0,3}(.*)
```
这个正则表达式的含义和上一个回答中一样,但是这里的重点是如何输出匹配到的行。
因此,如果您要输出1、5、9、13等所在行的数据,可以使用如下的代码:
```python
import re
with open('file.txt', 'r') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if re.match(r'^(?:.*\n){0,3}(.*)', line).group(1):
print(f"第{i+1}行:{line}")
```
其中,`file.txt` 是您要匹配的文本文件的路径。这段代码会依次读取每一行文本,如果这一行是第1、5、9、13等行,则输出这一行所在的行号和内容。
相关问题
使用正则表达式只输出1、5、9、13等行的数据
假设您想要从一个文本文件中输出1、5、9、13等行的数据,您可以使用类似于下面的正则表达式:
```
^(?:.*\n){0,3}(.*)
```
这个正则表达式的含义是:
- `^` 匹配行首
- `(?:.*\n)` 匹配任意字符直到行尾,并且包括行尾符(`\n`)
- `{0,3}` 匹配前面的表达式0到3次,也就是匹配前3行
- `(.*)` 匹配任意字符直到行尾,这里使用括号将匹配结果保存到分组中
因此,如果您要输出1、5、9、13等行的数据,可以使用如下的代码:
```python
import re
with open('file.txt', 'r') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if re.match(r'^(?:.*\n){0,3}(.*)', line).group(1):
print(line)
```
其中,`file.txt` 是您要匹配的文本文件的路径。这段代码会依次读取每一行文本,如果这一行是第1、5、9、13等行,则输出这一行的内容。
使用正则表达式输出1、5、9、13等行的数据
假设你要输出一个文本文件的每隔4行的数据,可以使用以下正则表达式:
```
^.*(?:\r?\n){3}
```
解释:
- `^` 匹配行的开头
- `.*` 匹配任意字符(除了换行符)0次或多次
- `(?:\r?\n){3}` 匹配3个非捕获组中的回车符和换行符,也就是“\r\n”或“\n”
括号中的`?:`表示这是一个非捕获组,不会被匹配或者捕获,只是用来分组。
这个正则表达式匹配每个4行,因为每个匹配都会跳过3行,并匹配第4行。