Python 用空格替换字符串
Python replace string with whitespace
我有一个包含以下数据的 test.txt 文件:
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
我一直想达到的目的是从 txt 文件中删除下面代码中提到的列表“名称”中提到的内容。
with open(r'test.txt', 'r') as file:
data = file.read()
print(data)
name=['jon','doe']
for e in name:
new_string=data.replace('\' + e + '\-\1\',' ').replace('\' + e + '\-\2\',' ').replace('\' + e + '\-\3\',' ').replace('\' + e + '\',' ')
print(new_string)
此代码显示的输出:-
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
jon doe smith
\jon\-\ \jon\-\ \jon\-\ - \
\smith\- \ \smith\-\ \smith\-\
我需要的输出:-
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
smith
\smith\- \ \smith\-\ \smith\-\
此外,有没有一种方法可以使用正则表达式代替替换?
尝试:
import re
pattern = r"\?(\w+)\?(- ?[\\d]*)?"
res = re.sub(pattern, lambda x: x[0] if x[1] not in name else ' ', x)
我有一个包含以下数据的 test.txt 文件:
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
我一直想达到的目的是从 txt 文件中删除下面代码中提到的列表“名称”中提到的内容。
with open(r'test.txt', 'r') as file:
data = file.read()
print(data)
name=['jon','doe']
for e in name:
new_string=data.replace('\' + e + '\-\1\',' ').replace('\' + e + '\-\2\',' ').replace('\' + e + '\-\3\',' ').replace('\' + e + '\',' ')
print(new_string)
此代码显示的输出:-
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
jon doe smith
\jon\-\ \jon\-\ \jon\-\ - \
\smith\- \ \smith\-\ \smith\-\
我需要的输出:-
jon doe smith
\jon\-\ \jon\-\ \jon\-\ \doe\- \ \doe\-\
\doe\-\ \smith\- \ \smith\-\ \smith\-\
smith
\smith\- \ \smith\-\ \smith\-\
此外,有没有一种方法可以使用正则表达式代替替换?
尝试:
import re
pattern = r"\?(\w+)\?(- ?[\\d]*)?"
res = re.sub(pattern, lambda x: x[0] if x[1] not in name else ' ', x)