我正在尝试用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
答案 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
。