软件开发定制定制一篇文章打通PostgreSql(pgsql)的正则匹配: like, similar to, ~。 以及与 mysql 正则匹配的区别。

1. like

like 软件开发定制定制是最简单的最通用的匹配符, 用法同 mysql

1)  _ : 软件开发定制定制匹配任意一个字符

2) % : 软件开发定制定制匹配任意个任意字符

例如 : 要从表aaa中查询 字段bbb 软件开发定制定制倒数第三位为字符 M 的行, 可以写做

  1. select
  2. *
  3. from
  4. aaa
  5. where
  6. bbb like '%M__'

%代表M软件开发定制定制之前可以有任意字符(一个字符也没有也可以), M后面跟着的两个下划线_ 代表 M 后面还有两个字符, 那么M就是倒数第三个的字符

注意 : like 是完整匹配, 不需要定界符。 也就是说, 必须要字符串完全匹配你所写的内容, 才会生效。

2.  similar to

similar to 是 特有的, 介于正则匹配符~(后文会讲到) 与 模糊匹配 like 之间的符号

1) similar to 支持 like 的 _ 以及 % 这两个符号

2) similar to 也支持 的常用操作(见后文)

注意 : similar to 也是完整匹配, 不需要定界符。 也就是说, 必须要字符串完全匹配你所写的内容, 才会生效。

3.TILDE ( ~ ) 运算符

腭化符号 ~ 是 pgsql 特有的代表正则匹配的运算符, 作用相当于 mysql 中的 rlike

1) 不支持模糊匹配的 _ 与 %, 但可以用相应的正则表达式替换, 如 % 可以写作 .*

2) 支持正则表达式(见后文)

3) ~ 代表确定大小写的正则匹配

        ~* 代表忽视大小写的正则匹配

        !~ 代表确定大小写的非正则匹配

        !~* 代表忽视大小写的非正则匹配

注意 : ~ 也是部分匹配, 也就是字符串中有某个部分能匹配到正则规则的时候, 就会生效。 所以如果需要匹配完整字符串, 需要加上定界符 ^ 和 $

4.正则表达式

文末简单列几个常用的正则表达式

1. \d : 任意数字

2. \D : 任意不是数字的字符

3. \w : 任意数字、字母, 或者下划线

4. \W : 任意不是数字、字母, 或者下划线的字符

5. \s : 任意空白字符 (空格, tab, 换页)

6. \S : 任意不是空白字符的字符

7. ^ : 开头定界符

8. $ : 结尾定界符

9. () : 圆括号内的字符串作为一个整体

10. [] : 方括号内的字符串出现任意一个就可以了。 方括号内也可以用 - 来连接连续的字符

        比如 : [abcd] 代表出现abcd中任意一个字符就可以了, [a-d] 起到了与前者一样的作用

11. {} : 花括号代表前面的数字出现了多少次

        1) {n} : 代表前面的字符串出现了n次。

                比如 (abc){3} 就代表匹配 abcabcabc, [a-d]{3} 则代表匹配 aaa,abc, adb等等。

        2) {n, } : 加上一个逗号, 代表前面的字符串至少出现n次

                比如: (abc){2, } 可以匹配 abcabc, 也可以匹配 abcabcabc, 也可以匹配abcabcabcabc 等等

        3) {n, m} : 代表前面的字符串要出现 n 到 m 次

12. “.” : 代表匹配除了换行以外的任意字符 (不需要双引号, 只是为了让大家能够看清这儿有个点)

13. * : 代表前面的字符或者字符串出现任意次, 即 0 到 正无穷次

14. ? : 代表前面的字符串出现 0 次 或者 1 次

15. + : 代表前面的字符串至少出现 1 次, 即出现 1 到正无穷次

参考资料

 

 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发