首页 > 解决方案 > 用于在 posgtresql 中查询的正则表达式

问题描述

我有一个跟随这个模板的标签名称

abc_abcd_L{x}_AB1L{x}_abcabc_abcbabc

我需要的是一个正则表达式,用于在 {x} 是从 1 到 4 的数字的查询中,我的意思是,我想完全匹配上面的所有内容,唯一改变的字符是 {} 中的数字,所以我的一点描述是:

abc_abcd_L1_AB1L1_abcabc_abcbabc abc_abcd_L2_AB1L2_abcabc_abcbabc abc_abcd_L3_AB1L3_abcabc_abcbabc

所以只有两个'L'之后的数字都会改变。我如何为 Postgresql 中的查询编写此正则表达式?

纳克斯

标签: regexpostgresql

解决方案


虽然我不知道 postgresql,但这是它的标准正则表达式解决方案:

abc_abcd_L([1-4])_AB1L\1_abcabc_abcbabc

你可以在这里试试

解释:

据我所知,我正在使用所有语言都支持的正则表达式功能,称为命名组。基本上,正则表达式中括号内的所有内容都是一个组,每个组都有一个基于它在正则表达式中的位置的 id。在这种情况下,组([1-4])的位置为 1,因此我们使用回调运算符 . 来引用它\1

编辑:我忽略了数字必须在 1 到 4 之间的事实,所以我\d改为[1-4]


推荐阅读