re.sub with variables,full string only

时间:2017-12-04 17:07:04

标签: python regex substitution

我的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."

编辑 我认为这不是链接问题的重复。这些回复对我没有帮助,而且比这里提供的简单解决方案复杂得多。

1 个答案:

答案 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.