我只想替换单词"订单",而不是";订单;用";替换";
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)
#替换订单订单