不同的使用方式
SQL中:
使用 REGEXP 来匹配。
Java中:
使用String的matches方法来匹配。
正则表达式
概念:符合一定规则的表达式,用于操作字符串。
检索包含1000的行
REGEXP ‘1000’
’ . ‘ 表示匹配任意一个字符
进行OR匹配
REGEXP ‘1000|2000’
匹配几个字符之一
REGEXP ‘[1 2 3] Ton’
[1 2 3] 表示匹配1或者2或者3
’ ^ ‘ 否定
[ ^ 1 2 3] 匹配除1,2,3 以外的任何字符
匹配范围
[0 1 2 3 4 5 6 7 8 9] = [ 0 - 9 ]
[ a - z ] 表示匹配任意一个字母
匹配特殊字符
\ \ - 匹配 - | \ \ . 匹配 . | \ \ f 匹配 换页 | \ \ n 匹配 换行 |
---|---|---|---|
\ \ r 匹配 回车 | \ \ t 匹配 制表 | \ \ v 匹配 纵向制表 | \ \ \ 匹配 \ |
8. 匹配字符类
一些预定义的字符集:
类 | 说明 |
---|---|
[ : alnum : ] | 任意字母和数字(同[ a-zA-Z0-9]) |
[ : alpha : ] | 任意字符(同[ a-zA-Z]) |
[ : blank : ] | 空格和制表(同[ \ \t ]) |
[ : cntrl : ] | AscII 控制字符(0-31和127) |
[ : digit : ] | 任意数字[0-9] |
[ : graph : ] | 与print相似,但是不包括空格 |
[ : lower : ] | 任意小写字母 |
[ : print : ] | 任意可打印字符 |
[ : punct : ] | 既不在alnum又不在cntrl中的任意字符 |
[ : space : ] | 包括空格在内的任意空白字符 |
[ : upper : ] | 任意大写字母 |
[ : xdigit : ] | 任意16进制数字 |
9. 匹配多个实例
元字符 | 说明 |
---|---|
* | 0个或多个匹配 |
+ | 1个或多个匹配(等于{1,}) |
? | 0个或1个 |
{ n } | 指定数目的匹配 |
{ n,} | 不少于指定数目的匹配 |
{ n, m } | 匹配数目的范围(m不超过255) |
10. 定位符
如果不适用定位符,匹配的是一个串中任意位置的文本。
为了使用特定位置的文本,使用定位符。
元字符 | 说明 |
---|---|
^ | 文本的开始 |
$ | 文本的结尾 |
[ [ : < : ] ] | 词的开始 |
[ [ : > : ] ] | 词的结尾 |
例如: ERGEXP ‘ ^[ 0- 9 \ \ .] ’ 匹配以数字或者 ‘ . ’ 开始的行。
思考: 1. ^ 有两种语义,在 【^】中表否定,在外面用来指定串的开始处,
2. 如何才能让 REGEXP 起类似 LIKE 的作用: 用 ^ 开头, 用 $ 结尾。