我正在尝试根据正则表达式匹配行以排除某些字符,但没有得到正确的结果。
具体来说,我想从文件中获取所有不包含任何v,w,x,y或z字符的行。
我的代码是:
pat = '[^vwxyz]'
for line in records:
if re.search(pat, line) != None:
print(line)
但这仍然显示以下行:
第1行:32.27:用餐:20170317:在克莱德餐厅与弗雷德和吉娜(Big Inc.)一起午餐。
第2行:22.00:旅行:20170317:通行费
第3行:119.56:util:20170319:Verizon Wireless
第4行:284.23:util:20170323:Peoples Gas
第5行:8.98:供应:20170325:天才笔
第6行:23.25:用餐:20170223:洛根机场的晚餐
结果集中应包含第4行和第6行,但其他行则不需要
答案 0 :(得分:1)
尝试打印不与以下模式匹配的行:
^.*[vwxyz].*$
代码:
pat = '^.*[vwxyz].*$'
for line in records:
# use re.I for case insensitive matching, if you want that
if not re.search(pat, line):
print(line)