re.sub方法不适用于'$'模式

时间:2019-12-10 00:08:42

标签: python

我正在尝试用re.sub方法替换字符串末尾的'and'。但是要么所有“和”都在改变,要么什么都没有改变。我需要替换并且仅在最后。

fvalue = "$filter = Name eq 'abc' and Address eq 'xyz' and "
regex = r'(and\$)'
f_value = re.sub(regex,'',fvalue)
print(fvalue)

输出

$filter = Name eq 'abc' and Address eq 'xyz' and

1 个答案:

答案 0 :(得分:1)

您的代码有两个问题。首先,您要打印输入,而不是输出。而且,正如您在注释中所指出的,您正在转义$,并且在输入中的“和”之后但在字符串末尾之前有空格,因此(and$)将不匹配

尝试这样的事情:

fvalue = "$filter = Name eq 'abc' and Address eq 'xyz' and "
regex = r'and\s*$'
f_value = re.sub(regex,'',fvalue)
print(f_value)

由于您不使用捕获组,因此我将其删除了,取消了$锚的转义,并插入了可能的空格(\s*)。

最后,打印结果f_value而不是输入fvalue