------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
首先感谢黑马、感谢素不相识的 毕老师
正则表达式
一、正则表达式的概要
a、 定义:表达式遵守一定的规则。
b、 应用:字符串的相关操作。
c、 好处:使复杂的字符串操作变得十分简化。
d、 缺点:规则符号越多,阅读性欠佳。
二、通用符符
=>、符号
x 字符 x
\\ 反斜线字符
\t 制表符
\n 换行
\r 回车键
\f 换页操作
\a 报警提醒)
=>字符类一般操作
[efd] e、f或 d
[efd] 非三个字符之一的字符
[a-zA-Z] (同时包含azAZ)a到 z或 A 到 Z
[a-d[n-z]] a到 d或 n 到 z二者的并集
[a-z&&[def]] (交集)
[a-z&&[^efd]] a— z,(排除了 efd)集合减法
[a-z&&[^m-p]] 集合减法
=>预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
=>边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
=>Greedy数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n次
X{n,} X,至少 n次
X{n,m} X,至少 n次,但是不超过 m 次
=>组和捕获
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C)))中,存在四个这样的组:
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
组零始终代表整个表达式。在替换中常用$匹配组的内容。
三、功能应用
基本的功能:匹配、切割、替换和获取
1、匹配方法-返回值为true或false,字符串中booleanmatches(String regex)函数。用规则匹配整个字符串,。
示例:
[java] view plaincopyprint?
1. class MatchesDemo
2. {
3. /*
4. 对QQ号码进行校验
5. 要求:5~15 0不能开头,只能是数字
6. */
7. //方式一,不用正则表达式
8. public static void qqCheck_1(String qq)
9. {
10. if (!qq.startsWith("0"))
11. {
12. if (qq.length()>=5&&qq.length()<=15)
13. {
14. try
15. {
16. Long l=Long.parseLong(qq);//利用封装基本数据类型出现非数字报异常的特点
17. System.out.println(qq);
18. }
19. catch (NumberFormatException e)
20. {
21. System.out.println("包含非法字符!");
22. }