问题描述
我想基于查找表从字符串中提取子字符串。
就我而言,我有一个名为tld_list@H_502_2@的表,该表基本上包含可能的顶级域条目的列表。
我对Postgresl函数比较陌生,因此我不知道如何将这样复杂的逻辑组合在一起,因为我不了解语法。
def extract_sld(query_or_answer: str,tld_list: list) -> typing.Optional[str]:
lowered_query_or_answer = query_or_answer.lower()
for tld in tld_list:
if tld == lowered_query_or_answer:
# the `query_or_answer` is itself a tld
return None
if lowered_query_or_answer.endswith("." + tld):
tld_len = len(tld) + 1
return ".".join([lowered_query_or_answer[:-tld_len].split(".")[-1],tld])
return None
@H_502_2@
因此,基本上,我将条目传递给gateway.mydomain.com@H_502_2@之类的函数,它应返回第二级域,在这种情况下为
mydomain.com@H_502_2@。
我需要采取的步骤:
- 降低输入字符串
- 通过
tld_list@H_502_2@条目重复
- 检查输入字符串是否以tld条目结尾
- 如果输入字符串等于tld条目,则返回
NULL@H_502_2@
- 否则,如果输入字符串以tld条目结尾,则提取tld条目之后的子域,例如:
tld = com@H_502_2@,
input = gateway.mydomain.com@H_502_2@->
sld = mydomain.com@H_502_2@
- 否则,如果在输入字符串中找不到单个
tld@H_502_2@,则返回
NULL@H_502_2@
有人可以帮我将我的Python代码转换为psql等效代码吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)