我正在使用python抓取一个.txt文件,并且正在使用正则表达式来捕获票证编号和名称:
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:
如果我在正则表达式后附加\n
,它将打印我的空白行,但是有没有办法保持我的“已填写”行并通过换行符排除空白?
答案 0 :(得分:2)
以下代码将通过添加一次或多次匹配Unicode空白字符(包括[\t\n\r\f\v]
的 \ s + 来跳过空行,然后添加 \ w + 一个或多个与Unicode单词字符匹配的字符;这包括可以用任何语言组成的单词的大多数字符,以及数字和下划线。如果使用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
答案 1 :(得分:0)