PostgreSQL模式匹配和正则表达式
warning:
这篇文章距离上次修改已过430天,其中的内容可能已经有所变动。
在PostgreSQL中,可以使用正则表达式进行模式匹配。下面是一些使用正则表达式的例子:
- 使用
~运算符进行匹配,其中^表示字符串的开始,$表示字符串的结束。
-- 选择所有名字以'J'开头的用户
SELECT * FROM users WHERE name ~ '^J';
-- 选择所有名字以'son'结尾的用户
SELECT * FROM users WHERE name ~ 'son$';- 使用
~*运算符进行不区分大小写的匹配。
-- 选择所有名字以'j'开头的用户,不区分大小写
SELECT * FROM users WHERE name ~* '^j';- 使用正则表达式中的特殊字符类,如
\d匹配数字,\w匹配字母或数字。
-- 选择所有电话号码是11位的用户
SELECT * FROM users WHERE phone ~ '^\d{11}$';- 使用正则表达式的或条件
|。
-- 选择所有名字是'John'或'Jane'的用户
SELECT * FROM users WHERE name ~ '^J[aohn]n[e]*$';- 使用正则表达式的量词,如
*表示重复0次或多次,+表示重复1次或多次。
-- 选择所有名字有最少2个'o'的用户
SELECT * FROM users WHERE name ~ 'o{2,}';以上例子展示了如何在PostgreSQL中使用正则表达式进行模式匹配。
评论已关闭