我将假设您希望逐行进行此匹配。描述如何执行此操作的最佳方法是举个例子。假设我有以下文件test.txt
:
{'name': 'Bryan', 'age': 34, 'male': True, 'hometown': 'Boston'}
{'name': 'Anna', 'age': 25, 'male': False, 'hometown': 'Chicago'}
{'name': 'Jeff', 'age': 47, 'male': True, 'hometown': 'Vancouver'}
{'name': 'Maria', 'age': 58, 'male': False, 'hometown': 'Madrid'}
对于每一行,我想匹配与正则表达式不匹配的任何内容:
r" 'age': \d+,"
所以对于第一行,那将是:
{'name': 'Bryan', 'male': True, 'hometown': 'Boston'}
本质上,我们只是用r" 'age': \d+,"
空字符串替换正则表达式,所以:
import re
pattern = re.compile(r" 'age': \d+,")
with open('test.txt') as f:
for line in f:
line = pattern.sub(r'', line)
print(line, end='')
印刷:
{'name': 'Bryan', 'male': True, 'hometown': 'Boston'}
{'name': 'Anna', 'male': False, 'hometown': 'Chicago'}
{'name': 'Jeff', 'male': True, 'hometown': 'Vancouver'}
{'name': 'Maria', 'male': False, 'hometown': 'Madrid'}
概括
搜索您的正则表达式并将其替换为空字符串。剩下的就相当于匹配了正则表达式的所有内容。