正则表达式要点
2016-04-25 20:31
316 查看
1-----正则表达式实际上就是匹配数据的规则
2-----元字符,即代表一些特殊意义的字符
元字符有:([{\^-$|}])?*+.
字符类:指放在[]中的字符
.代表任意字符
^代表取反
[]代表的是集合的意思
字符类
[abc] a, b 或 c(简单类)
[^abc] 除 a, b 或 c 之外的任意字符(取反)
[a-zA-Z] a 到 z,或 A 到 Z,包括(范围)
[a-d[m-p]] a 到 d,或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d,e 或 f(交集)
[a-z&&[^bc]] 除 b 和 c 之外的 a 到 z 字符:[ad-z](差集)
[a-z&&[^m-p]] a 到 z,并且不包括 m 到 p:[a-lq-z](差集)
正则表达式的简写形式:
预定义字符类
. 任何字符(匹配或者不匹配行结束符)
\d 数字字符:[0-9]
\D 非数字字符:[^0-9]
\s 空白字符:[\t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
3量词
贪婪(greedy)、勉强(reluctant)和侵占(possessive)量词,来匹配指定表达式X的次数。
量 词 种 类
贪婪 勉强 侵占 意 义
X? X?? X?+ 匹配 X 零次或一次
X* X*? X*+ 匹配 X 零次或多次
X+ X+? X++ 匹配 X 一次或多次
X{n} X{n}? X{n}+ 匹配 X n 次
X{n,} X{n,}? X{n,}+ 匹配 X 至少 n 次
X{n,m} X{n,m}? X{n,m}+ 匹配 X 至少 n 次,但不多于 m 次
4.正则项a?
输入项:
将出现零长度匹配的结果
反向引用\1,表达式稍候会被再次调用。
如(\d\d)\1
匹配后面的两个数字和前面的排列一样
如:1212
5.边界匹配器
^ 行首
$ 行尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
内嵌标志表达式所对应 Pattern 的公用的访问字段表示如下表:
常 量 等价的内嵌标志表达式
Pattern.CANON_EQ 没有
Pattern.CASE_INSENSITIVE (?i)
Pattern.COMMENTS (?x)
Pattern.MULTILINE (?m)
Pattern.DOTALL (?s)
Pattern.LITERAL 没有
Pattern.UNICODE_CASE (?u)
Pattern.UNIX_LINES (?d)
//电话号码的划分
1、移动号段有134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188。
2、联通号段有130,131,132,155,156,185,186,145,176。
3、电信号段有133,153,177,180,181,189
2-----元字符,即代表一些特殊意义的字符
元字符有:([{\^-$|}])?*+.
字符类:指放在[]中的字符
.代表任意字符
^代表取反
[]代表的是集合的意思
字符类
[abc] a, b 或 c(简单类)
[^abc] 除 a, b 或 c 之外的任意字符(取反)
[a-zA-Z] a 到 z,或 A 到 Z,包括(范围)
[a-d[m-p]] a 到 d,或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d,e 或 f(交集)
[a-z&&[^bc]] 除 b 和 c 之外的 a 到 z 字符:[ad-z](差集)
[a-z&&[^m-p]] a 到 z,并且不包括 m 到 p:[a-lq-z](差集)
正则表达式的简写形式:
预定义字符类
. 任何字符(匹配或者不匹配行结束符)
\d 数字字符:[0-9]
\D 非数字字符:[^0-9]
\s 空白字符:[\t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
3量词
贪婪(greedy)、勉强(reluctant)和侵占(possessive)量词,来匹配指定表达式X的次数。
量 词 种 类
贪婪 勉强 侵占 意 义
X? X?? X?+ 匹配 X 零次或一次
X* X*? X*+ 匹配 X 零次或多次
X+ X+? X++ 匹配 X 一次或多次
X{n} X{n}? X{n}+ 匹配 X n 次
X{n,} X{n,}? X{n,}+ 匹配 X 至少 n 次
X{n,m} X{n,m}? X{n,m}+ 匹配 X 至少 n 次,但不多于 m 次
4.正则项a?
输入项:
将出现零长度匹配的结果
反向引用\1,表达式稍候会被再次调用。
如(\d\d)\1
匹配后面的两个数字和前面的排列一样
如:1212
5.边界匹配器
^ 行首
$ 行尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
内嵌标志表达式所对应 Pattern 的公用的访问字段表示如下表:
常 量 等价的内嵌标志表达式
Pattern.CANON_EQ 没有
Pattern.CASE_INSENSITIVE (?i)
Pattern.COMMENTS (?x)
Pattern.MULTILINE (?m)
Pattern.DOTALL (?s)
Pattern.LITERAL 没有
Pattern.UNICODE_CASE (?u)
Pattern.UNIX_LINES (?d)
//电话号码的划分
1、移动号段有134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188。
2、联通号段有130,131,132,155,156,185,186,145,176。
3、电信号段有133,153,177,180,181,189
相关文章推荐
- 每天一个linux命令:chown
- [bzoj4514]数字配对[费用流]
- nyoj 37 回文字符串
- (2.2.9.1)Groovy一些前提知识
- 5--指针与数组(下)
- 无人机学习第一波
- [CODEVS1090][NOIP2013]加分二叉树(树形dp)
- 如何更改workbench的快捷键
- HDU1576 A/B (解法二)
- Educational Codeforces Round 12 D. Simple Subset
- c++第四次作业
- iOS边练边学--多线程练习的多图片下载 以及 使用第三方框架(SDWebImage)的多图片下载
- 线程同步与互斥之条件·变量
- 定时自动启动任务crontab命令用法
- poj 2373(单调队列优化dp)
- (2.2.9)Groovy 介绍
- 对UIView 实例方法的探索
- HBase总结(十一)hbase Java API 介绍及使用示例
- STEM教育 or steam教育 art
- D The Lucky Week