替换时,替换函数无法使用python中的边界



我只想替换单词"订单",而不是";订单;用";替换";

import re
a = """order orders Order"""
x = a.replace(r"order","replace")
print(x)
#replace replaces

当我给出边界时,它的显示错误

import re
a = """order orders Order"""
x = a.replace(r'b'+order+r'b',"replace")
print(x)
#NameError: name 'order' is not defined

我只想替换订单,不想替换订单。有人能帮我吗。

我期望输出为:"quot"替换订单订单"quot;

使用re.sub和此正则表达式:

import re
a = """order orders Order"""
x = re.sub(r"order(?=[^s])","replace",a)
print(x)
  • [^s]。。。字符不是";s">
  • (?=...)。。。lookahead,检查它是否为真(在这种情况下为no"s"(,但不将其包括在匹配中

EDIT:如果字符串以order:结尾,则更好的regexp也能工作

import re
a = """order orders Order order"""
x = re.sub(r"order(?=$|[^s])","replace",a)
print(x)
  • $|[^s]。。。字符串结束与否";s">

您应该尝试以下解决方案。

import re
a = """order orders Order"""
x = re.sub(r"borderb", "replace", a)
print(x)

正如@Jan所建议的,我已经得到了答案。

import re
a = """order orders Order"""
x = re.sub(r"order(?=[^a-z])","replace",a)
print(x)

#替换订单订单

最新更新