首页 > 解决方案 > 如何允许正则表达式搜索 '\xcf\x83' 这种字符串

问题描述

pattern = compile(r"(?<=\>)\d{1,4}\.(?=\s)")
input_string = "some string with \xcf\x83 code"

print(pattern.search(input_string))

但是模式搜索忽略了 utf-8 编码值,例如\xcf 如何允许

标签: python-3.x

解决方案


对输入字符串和模式使用 r-string 格式,r""这样特殊字符不会被翻译但保持不变。在模式中,在 \ 字符前面使用额外的 \ 来表示正则表达式必须搜索后面的 \ 并且不是特殊字符的开头

import re
print(re.compile(r"\\xcf\\x83").search(r"some string with \xcf\x83 code"))
# <_sre.SRE_Match object; span=(17, 25), match='\\xcf\\x83'>

推荐阅读