繁体   English   中英

如何在python中将正则表达式序列化为json?

[英]How to serialize a regex to json in python?

我正在python构建一个API,它接受正则表达式,并且需要能够将编译的正则表达式序列化回json响应中的原始字符串。 我环顾四周但没有找到一个从编译的正则表达式访问原始正则表达式的明显方法:

import re 
regex = re.compile(r".*")
# what now?

我提出的一种方法是创建一个自定义Regex类,它反映所有功能,但提供对raw属性的访问,我可以在序列化时使用该属性:

import re 

class SerializableRegex(object):
    def __init__(self, regex):
        self.raw = regex 
        self.r = re.compile(regex)
        self.r.__init__(self)

但是,这似乎并没有让我访问已编译的正则表达式的方法。

我可能必须使用的最后一个选项只是镜像我的自定义类中的所有方法:

import re 

class SerializableRegex(object):
    def __init__(self, regex):
        self.raw = regex 
        self.r = re.compile(regex)
        self.r.__init__(self)

    def match(self, *args, **kwargs):
         return self.r.match(*args, **kwargs)
    ...

然而,这似乎完全不优雅。 有更好的解决方案吗?

您可以通过pattern属性访问原始正则表达式字符串:

import re
regex_str  = '.*'
regex = re.compile(regex_str)
assert(regex_str == regex.pattern)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM