【问题标题】:Regular expression in Python 2.7Python 2.7 中的正则表达式
【发布时间】:2012-07-06 00:37:36
【问题描述】:

另一个问题:

我正在尝试在字段中搜索特定模式,但我必须处理以下情况:

这行返回正确的解释

f27 = re.findall( b'\x03\x00\x00\x27''(.*?)''\xF7\x00\xF0', s)

但是这个被错误地解释为 x28 与 '()' 括号有关

f28 = re.findall( b'\x03\x00\x00\x28''(.*?)''\xF7\x00\xF0', s)

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 文件“D:\Portable Python 2.7.2.1\App\lib\re.py”,第 177 行,在 findall 中 返回_compile(模式,标志).findall(字符串) _compile 中的文件“D:\Portable Python 2.7.2.1\App\lib\re.py”,第 244 行 raise error, v # 无效表达式 错误:括号不平衡

我尝试了几个转义 '\' 和 '/' 但没有办法!

有什么办法吗?

谢谢

【问题讨论】:

  • s 等于什么?冷你发布一个SSCCE?
  • 是的:s 是一个放在变量中的文件:f = open('d:\BB.ki', "rb") s = f.read()

标签: regex python-2.7


【解决方案1】:

尝试使用原始字节串。 re 模块本身理解转义序列。

f28 = re.findall(br'\x03\x00\x00\x28(.*?)\xF7\x00\xF0', s)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2016-11-29
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多