postgres 与正则表达式匹配
postgres match with regex
我有一列包含这样的值
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' #i don't care about en-us.UTC thing.
我可以访问 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|header)\.([[:alnum:]]+)\.(?:GET\.)?([[:alnum:]]+)(?:\.[[:alnum:]]+)?\.en-us\.UTC
见regex demo。它匹配
views\.decorators\.cache\.cache_
- 一个固定的 views.decorators.cache.cache_
字符串
(?:page|header)
- page
或 header
\.
- 一个点
([[:alnum:]]+)
- 第 1 组:一个或多个字母数字
\.
- 一个点
(?:GET\.)?
- 一个可选的 GET.
字符串
([[:alnum:]]+)
- 第 2 组:一个或多个字母数字
(?:\.[[:alnum:]]+)?
- .
的可选出现,然后是一个或多个字母数字字符序列
\.en-us\.UTC
- .en-us.UTC
字符串。
我有一列包含这样的值
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' #i don't care about en-us.UTC thing.
我可以访问 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|header)\.([[:alnum:]]+)\.(?:GET\.)?([[:alnum:]]+)(?:\.[[:alnum:]]+)?\.en-us\.UTC
见regex demo。它匹配
views\.decorators\.cache\.cache_
- 一个固定的views.decorators.cache.cache_
字符串(?:page|header)
-page
或header
\.
- 一个点([[:alnum:]]+)
- 第 1 组:一个或多个字母数字\.
- 一个点(?:GET\.)?
- 一个可选的GET.
字符串([[:alnum:]]+)
- 第 2 组:一个或多个字母数字(?:\.[[:alnum:]]+)?
-.
的可选出现,然后是一个或多个字母数字字符序列\.en-us\.UTC
-.en-us.UTC
字符串。