簡體   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