在Python正则表达式引擎中添加特殊字符

时间:2013-09-03 20:14:47

标签: python

我有一个搜索字节码指令的项目,我想扩展它以允许使用正则表达式来匹配模式。

我想要做的事情的要点是拥有自定义角色类/集,这样我就可以像ISTORE那样匹配以下任何指令:

ISTORE ISTORE_0 ISTORE_1 ISTORE_2 ISTORE_3

然后类似ILOAD ... ILOAD_n等等。

ISTORE和ILOAD类似于\s这样的元字符,它们真正代表多个字符。

基本上我只是在寻找一个跳跃点,所以我可以找到一种方法来实现我自己的元字符。

1 个答案:

答案 0 :(得分:2)

您不需要修改正则表达式引擎(这将非常困难)

你只需要一个帮助函数就可以像使用re.escape

一样将正则表达式转换为python
def my_re_escape(regex):
    regex = re.escape(regex)
    regex = regex.replace('foo', 'bar')
    # etc
    return regex