在python outpu中排除模式

2024-07-07 07:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python抓取一个.txt文件,并使用regex捕获票号和名称:

for line in Text:
    if re.match('Ticket:|Name:', line):
        print(line)

根据我的.txt文件,这将捕获正确的字段以及我的空行(尚未填写):

Ticket:  123
Name:  Person123
Ticket:  124
Name:  Person124
Ticket:  
Name:  
Ticket:  
Name:
Ticket:  
Name:

如果我在regex中附加一个\n,它会打印出我的空行,但是有没有办法保持我的“填充”行,并且用换行符排除空行呢?你知道吗


Tags: 文件textnameinretxt名称for
2条回答

下面的代码将跳过空行,方法是添加一次或多次与Unicode空白字符(包括[\t\n\r\f\v])匹配的\s+,然后添加一次或多次与Unicode单词字符匹配的\w+;这包括任何语言中可以作为单词一部分的大多数字符,以及数字和下划线。如果使用ASCII标志,则只匹配[a-zA-Z0-9_]

for line in Text:
   if re.match('Ticket:\s+\w+|Name:\s+\w+', line):
        print(line)

输出:

Ticket:  123
Name:  Person123
Ticket:  124
Name:  Person124

也许您可以使用rstrip并指定换行符\n

for line in Text:
    if re.match('Ticket:|Name:', line):
        print(line.rstrip('\n'))

Demo

相关问题 更多 >