()中的内容用变量$1 $2 $n代替
PostgreSQL
()中的内容用变量\1 \2 \n代替
获取大括号中的内容
字符串去重
去除字符串最后两位
擦除所有空格
擦除左右两边的空格
从html中提取字符串
取开头4个字符和最后4个字符
****提取字段
正向匹配和反向匹配
查询name字段中不包含数字的记录
匹配固定电话或传真
匹配移动电话
限定用户名
用户名必须由6-16位的A-Z,a-z,0-9,_组成,并且不能为纯数字
要想给“麻将”和“速度”这两个词加粗
度分秒格式转换为度格式
度精确至小数点6位.只进行了一次浮点运算.
字符串由数字\大写字母\小写字母\下划线@符号组成,且必须包含数字\大写字母\小写字母,数字\大写字母\小写字母必须至少出现一次,长度为6-14位
字符串由数字\大写字母\小写字母\下划线@符号组成,并且不能以数字开头,且必须包含数字\大写字母\小写字母,数字\大写字母\小写字母必须至少出现一次,长度为6-14位
日期时间提取
支持1900-2199年的时间,返回的数据索引的含义:
1:完成日期和时间
2.仅日期部分
3.仅年部份
4.年代的头二位(19/20/21)
5.月部分
6.日期部份
7.完整时间部份
8.小时部分
9.分钟部分
10.秒部分
把一段字符串中的冒号、单引号、问号前面加上问号 这个正则怎么写
必须以字母开头,且长度为4-16的字符串
补充:PostgreSQL 正则表达式 常用函数
对那些需要进行复杂数据处理的程序来说,正则表达式无疑是一个非常有用的工具。本文重点在于阐述 PostgreSQL 的一些常用正则表达式函数以及源码中的一些函数。
正则相关部分的目录结构
正则表达式编译、匹配、释放、错误信息相关文件,后面再做具体介绍
内置函数实现在 regexp.c
内置函数声明:
参数类型及返回值类型:
substring(string from pattern)函数提供了从字符串中抽取一个匹配 POSIX 正则表达式模式的子字符串的方法。如果没有匹配它返回 NULL ,否则就是文本中匹配模式的那部分。
regexp_replace(source, pattern, replacement [, flags ])函数提供了将匹配 POSIX 正则表达式模式的子字符串替换为新文本的功能。
regexp_matches(string, pattern[, flags ])函数返回一个从匹配POSIX正则表达式模式中获取的所有子串结果的text数组。
参数flags是一个可选的text字符串,含有0或者更多单字母标记来改变函数行为。标记g导致查找字符串中的每个匹配,而不仅是第一个,每个匹配返回一行。
regexp_split_to_table(string, pattern[, flags ])函数使用POSIX正则表达式模式作为分隔符,分隔字符串。返回结果为string。。
regexp_split_to_array (string, pattern[, flags ])函数与regexp_split_to_table行为相同,但,返回结果为text数组。
具体使用参考用户手册。
src/include/regex/regex.h
regex_t 结构体
存放编译后的正则表达式
regmatch_t 结构体
成员rm_so 存放匹配文本串在目标串中的开始位置,rm_eo 存放结束位置。通常我们以数组的形式定义一组这样的结构。
有下面几个主要的函数声明
处理正则表达式常用的函数有 pg_regcomp()、pg_regexec()、pg_regfree() 和 pg_regerror()。
一般处理步骤:编译正则表达式 pg_regcomp(),匹配正则表达式 pg_regexec(),释放正则表达式 pg_regfree()。
pg_regerror() :当执行regcomp 或者regexec 产生错误的时候,就可以调用这个函数而返回一个包含错误信息的字符串。
参数说明
flags
src/backend/utils/adt/regexp.c
选项 描述 b 剩余的正则表达式是 BR c 大小写敏感匹配(覆盖操作符类型) e 剩余的正则表达式是 ERE i 大小写不敏感匹配(覆盖操作符类型) m n的历史同义词 n 新行敏感匹 p 部分新行敏感匹配 q 重置正则表达式为一个文本("引起")字符串,所有都是普通字符。 s 非新行敏感匹配(缺省) t 紧语法 w 反转部分新行敏感("怪异")匹配 x 扩展的语法以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。