[英]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.