我只想用“替换”代替“订单”,而不是“订单”
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
我只想替换订单,而不是订单。谁能帮助我。
我期望输出为: “”“替换订单订单”“”
答案 0 :(得分:1)
使用re.sub
和此正则表达式:
import re
a = """order orders Order"""
x = re.sub(r"order(?=[^s])","replace",a)
print(x)
[^s]
...字符不是“ s” (?=...)
...前瞻,检查它是否为真(在这种情况下为“ s”),但不包含在比赛中编辑:如果字符串以order
结尾,则更好的正则表达式也可以工作:
import re
a = """order orders Order order"""
x = re.sub(r"order(?=$|[^s])","replace",a)
print(x)
$|[^s]
...字符串结尾还是不是“ s” 答案 1 :(得分:1)
您应该尝试以下解决方案。
import re
a = """order orders Order"""
x = re.sub(r"\border\b", "replace", a)
print(x)
答案 2 :(得分:0)
正如@Jan所建议的,我已经找到了答案。
import re
a = """order orders Order"""
x = re.sub(r"order(?=[^a-z])","replace",a)
print(x)
#replace order订单