我的csv中的第1列有target_string(要替换),第2列是上下文(text_column)。我不能让它只在独立时删除字符串。我试过添加\ b,但这不起作用。
文字:"Foo, FOOBAR FOO FOOBAR FOO FOO FOOBAR."
string_column = col [1]
text_column = col [2]
string_replacement = "BAR"
text_column = re.sub(string_column, string_replacement, text_column, flags=re.IGNORECASE)
我得到的是:"BARBAR BAR BARBAR BAR BAR BARBAR."
我需要的是:"FOOBAR BAR FOOBAR BAR BAR FOOBAR."
编辑 我认为这不是链接问题的重复。这些回复对我没有帮助,而且比这里提供的简单解决方案复杂得多。
答案 0 :(得分:3)
您(可能)双方都需要\b
:
import re
string = "Foo, FOOBAR FOO FOOBAR FOO FOO FOOBAR."
your_string_here = "FOO"
string_column = r"\b{}\b".format(your_string_here)
string_replacement = "BAR"
string = re.sub(string_column, 'BAR', string)
print(string)
这会产生
Foo, FOOBAR BAR FOOBAR BAR BAR FOOBAR.