我正在使用 PostgreSQL,想知道您是否可以让通配符保留其值。
所以例如说我有
select * from tableOne where field like ‘_DEF_’;
有没有办法让第一个和最后一个通配符完全相同?
因此,一个示例匹配结果可能是:ADEFA 或 ZDEFZ。
最佳答案
您可以使用带有反向引用的正则表达式:
select *
from some_table
where some_column ~* '^(.)DEF(\1)$'
^(.)DEF(\1)$
表示:开头的某个字符后跟 DEF
后跟第一个字符必须出现在字符串的末尾。()
定义了一个组,\1
引用了第一个组(在这个例子中是输入序列中的第一个字符)SQLFiddle 示例:http://sqlfiddle.com/#!15/d4c4d/1
关于postgresql - 具有相同通配符的模式匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29033022/