【发布时间】:2022-01-22 16:20:14
【问题描述】:
我有一列包含这样的值
views.decorators.cache.cache_header.APISetOne.596e986edcf211a323dbac38fe3654b8.en-us.UTC
views.decorators.cache.cache_page.APISetTwo.GET.1fc365e1f67d39935b199c133fada23b.ce596bddd33104b703521c71eb2e32c6.en-us.UTC
类似于 'view.decorators.cache.cache_{page|header}.{if header then None in this part, if not 'GET'}.{key_prefix_name}.{some_hash_that changes_everytime}.{last_hash}.en-us.UTC' #我不关心 en-us.UTC 的事情。
我可以访问 key_prefix_name 和 last_hash。
我想搜索包含特定 key_prefix_name 和 last_hash 的行。
我正在努力创建一个与之匹配的正则表达式。到目前为止,我想出了类似的东西:
select col1 from my_table where col1 ~* 'views.decorators.cache.cache_page.**APISetOne**.GET.[a-z,1-0].**ce596bddd33104b703521c71eb2e32c6**.en-us.UTC';
【问题讨论】:
-
类似
views\.decorators\.cache\.cache_(?:page\.APISetOne\.GET|header)\.([[:alnum:]]+)\.([[:alnum:]]+)\.en-us\.UTC?或者views\.decorators\.cache\.cache_(?:page|header)\.([[:alnum:]]+)\.(?:GET\.)?([[:alnum:].]+)\.en-us\.UTC?预期的结果是什么? -
documentation 是一个不错的起点。
-
@WiktorStribiżew 谢谢它在每个点之前没有“\”但我最终得到了类似'views.decorators.cache.cache_page.THE_PREFIX.GET.([[:alnum:]] +).THE_LAST_HASH.en-us.UTC' 感谢您帮助我完成那个 alnum 部分,我很讨厌正则表达式
-
您需要转义
.,否则它将匹配任何字符。看看here。
标签: regex postgresql psql