regex - 用于在 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 中的查询编写此正则表达式?
纳克斯
解决方案
虽然我不知道 postgresql,但这是它的标准正则表达式解决方案:
abc_abcd_L([1-4])_AB1L\1_abcabc_abcbabc
解释:
据我所知,我正在使用所有语言都支持的正则表达式功能,称为命名组。基本上,正则表达式中括号内的所有内容都是一个组,每个组都有一个基于它在正则表达式中的位置的 id。在这种情况下,组([1-4])
的位置为 1,因此我们使用回调运算符 . 来引用它\1
。
编辑:我忽略了数字必须在 1 到 4 之间的事实,所以我\d
改为[1-4]
推荐阅读
- algorithm - 选择数组元素的方法有多少?
- ios - 计算 iPhone 行进的短垂直距离
- bash - Bash - 检查给定参数是否存在
- javascript - 非单词是否有任何javascript单词边界替代方案?
- java - 由于 IllegalAccessException,Clojure 无法在 java 11 上调用接口默认方法
- c++ - 使用基于范围的循环迭代向量时出现问题
- python - 不明白为什么 UDS 长度对我来说似乎是错误的
- javascript - IIFE 或匿名函数和全局对象
- sql - 有没有办法使用地理服务器中的 WMS 存储,但在每次请求 SQL 查询数据库之前出于权限原因
- django - 如何比较来自查询集中的方法和值的值?[django]