SQL-REGEX-常见正则表达式的使用
在SQL中,正则表达式(Regex)的使用可以帮助进行更灵活和精确的模式匹配和数据筛选。不同的数据库管理系统对于正则表达式的支持略有差异,但大体都是相似的。

Tips:
| 模式 | 描述 | 匹配内容 |
|---|---|---|
* | Zero or more instances of string preceding it | 匹配之前字符串的零个或多个实例 |
+ | One or more instances of strings preceding it | 匹配之前字符串的一个或多个实例 |
. | Any single character | 匹配任何单个字符 |
? | Match zero or one instances of the strings preceding it | 匹配之前字符串的零个或一个实例 |
^ | Beginning of string | 匹配字符串的开头 |
$ | End of string | 匹配字符串的结尾 |
[abc] | Any character listed between the square brackets | 匹配方括号内列出的任何字符 |
[^abc] | Any character not listed between the square brackets | 匹配方括号内未列出的任何字符 |
[A-Z] | match any upper case letter | 匹配任何大写字母 |
[a-z] | match any lower case letter | 匹配任何小写字母 |
[0-9] | match any digit from 0 through to 9 | 匹配从 ‘0’ 到 ‘9’ 的任何数字 |
[[:<:]] | matches the beginning of words | 匹配单词的开头 |
[[:>:]] | matches the end of words | 匹配单词的结尾 |
[:class:] | matches a character class | 匹配字符类,例如 [:alpha:] 匹配字母,[:space:] 匹配空白,[:punct:] 匹配标点符号,[:upper:] 匹配大写字母 |
p1|p2|p3 | Alternation; matches any of the patterns p1, p2, or p3 | 匹配模式 p1、p2 或 p3 中的任何一个 |
{n} | n instances of preceding element | 匹配前一个元素的 n 次实例 |
{m,n} | m through n instances of preceding element | 匹配前一个元素的至少 m 次至多 n 次实例 |

Eg:
*(零个或多个实例)- 模式:
a*- 匹配: ``,
a,aa,aaa
- 匹配: ``,
- 模式:
12*- 匹配:
1,12,122,1222
- 匹配:
- 模式:
+(一个或多个实例)- 模式:
a+- 匹配:
a,aa,aaa(但不匹配空字符串)
- 匹配:
- 模式:
12+- 匹配:
12,122,1222(至少包含一个’1’后跟至少一个’2’)
- 匹配:
- 模式:
.(任何单个字符)- 模式:
a.b- 匹配:
acb,a@b,a1b(其中.可以匹配任何字符)
- 匹配:
- 模式:
...- 匹配:
123,abc,@#$(任意三个字符的组合)
- 匹配:
- 模式:
?(零个或一个实例)- 模式:
colou?r- 匹配:
color,colour(‘u’ 可选)
- 匹配:
- 模式:
10?- 匹配:
1,10(‘0’ 可选)
- 匹配:
- 模式:
^(字符串的开头)- 模式:
^abc- 匹配:
abc,abcdef(只有在字符串开头是’abc’时匹配)
- 匹配:
- 模式:
^[A-Z]- 匹配:
A,B,C(只有在字符串开头是大写字母时匹配)
- 匹配:
- 模式:


$(字符串的结尾)- 模式:
xyz$- 匹配:
xyz,abcxyz(只有在字符串结尾是’xyz’时匹配)
- 匹配:
- 模式:
[0-9]$- 匹配:
1,2,9(只有在字符串结尾是数字时匹配)
- 匹配:
- 模式:


[abc](方括号内列出的任何字符)- 模式:
[aeiou]- 匹配:
a,e,i,o,u(匹配任何元音字母)
- 匹配:
- 模式:
[0-5]- 匹配:
0,1,2,3,4,5(匹配 0 到 5 的任何数字)
- 匹配:
- 模式:
[^abc](方括号内未列出的任何字符)- 模式:
[^0-9]- 匹配:
a,A,@(匹配除了数字以外的任何字符)
- 匹配:
- 模式:
[^aeiou]- 匹配:
b,c,d(匹配除了元音字母以外的任何字母)
- 匹配:
- 模式:
[A-Z](任何大写字母)- 模式:
[A-F]- 匹配:
A,B,C,D,E,F(匹配从’A’到’F’的任何大写字母)
- 匹配:
- 模式:
[M-Z]- 匹配:
M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z(匹配从’M’到’Z’的任何大写字母)
- 匹配:
- 模式:
[a-z](任何小写字母)- 模式:
[a-h]- 匹配:
a,b,c,d,e,f,g,h(匹配从’a’到’h’的任何小写字母)
- 匹配:
- 模式:
[p-z]- 匹配:
p,q,r,s,t,u,v,w,x,y,z(匹配从’p’到’z’的任何小写字母)
- 匹配:
- 模式:
[0-9](任何数字)- 模式:
[1-5]- 匹配:
1,2,3,4,5(匹配从’1’到’5’的任何数字)
- 匹配:
- 模式:
[7-9]- 匹配:
7,8,9(匹配从’7’到’9’的任何数字)
- 匹配:
- 模式:
[[:<:]](单词的开头)- 模式:
[[:<:]]foo- 匹配:
foobar,foo123(匹配以’foo’开头的单词)
- 匹配:
- 模式:
[[:<:]]bar- 匹配:
bar,barista(匹配以’bar’开头的单词)
- 匹配:
- 模式:
[[:>:]](单词的结尾)- 模式:
foo[[:>:]]- 匹配:
endfoo,foo(匹配以’foo’结尾的单词)
- 匹配:
- 模式:
bar[[:>:]]- 匹配:
bar,barista(匹配以’bar’结尾的单词)
- 匹配:
- 模式:
[:class:](字符类)- 模式:
[[:digit:]]- 匹配:
0,1,2, …,9(匹配任何数字)
- 匹配:
- 模式:
[[:alpha:]]- 匹配:
a,B,C, …,Z(匹配任何字母)
- 匹配:
- 模式:
p1|p2|p3(选择)- 模式:
cat|dog- 匹配:
cat,dog(匹配’cat’或’dog’)
- 匹配:
- 模式:
yes|no|maybe- 匹配:
yes,no,maybe(匹配’yes’、‘no’或’maybe’)
- 匹配:
- 模式:
{n}(前一个元素的 n 次实例)- 模式:
a{3}- 匹配:
aaa(匹配三个连续的’a’)
- 匹配:
- 模式:
[0-9]{2}- 匹配:
12,34,56(匹配两位数的数字)
- 匹配:
- 模式:
{m,n}(前一个元素的 m 到 n 次实例)- 模式:
x{2,4}- 匹配:
xx,xxx,xxxx(匹配两到四个连续的’x’)
- 匹配:
- 模式:
[A-Za-z]{5,10}- 匹配:
abcdef,AbCdEfG,xyzWXYZ123(匹配包含 5 到 10 个字母的字符串)
- 匹配:
- 模式: