黑马程序员-----正则表达式
来源:互联网 发布:centos安装snmp服务 编辑:程序博客网 时间:2024/06/06 05:28
------- android培训、java培训、期待与您交流! ----------
1 正则表达式
正则表达式:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写,所以学习正则表达式就是学习一些特殊符号的使用。
在学习正则表达式之前,先看一个案例:
这是校验QQ的通常方法,但是代码过于复杂,下面是用正则表达式的方法:
通过上述案例,我们可以看出正则表达式的一些优缺点。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
1.1 匹配String str.matches(reg) 方法
String str = "a";
String reg ="[bcd]";
boolean b = str.matches(reg);
System.out.println(b);
1 字符类:
[abc]:a,b或c ,可以判断字符串中某个字符位上出现的字符。
[^abc]:任何字符除了a,b,c
[a-zA-Z]:a到z或A到Z
[a-z&&[^m-p]]:a到z,除了m到p
2 预定义字符类:
. 任何字符
\d 数字[0-9]
\D 非数字[^0-9]
\s 空白字符[\t\n\x0B\f\r]
\S 非空白字符[^\s]
\b 单词边界
\w 单词字符[a-zA-Z_0-9]
\W 非单词字符[^\w]
注意:实际代码中要多加个“\”
3 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好n次
X{n,} X,至少n次
X{n,m} X,至少n次,但是不超过m次
案例:
1.2 切割:String[] str.split(reg)方法
String reg = "," 按照,来进行切割,不需要转义
String reg = "\\." 按照.来进行切割(转义)
String reg = "\\\\" 按照\\来进行切割(转义)
String reg = "(.)\\1" 按照叠词(两个)完成切割,1代表第一组
String reg = "(.)\\1+" 按照两个以上的叠词完成切割
可以将规则封装成一个组。用()完成,组的出现都有编号,从1开始,想要使用已有的组可以通过\\n来表示,n代表组的编号。
1.3 替换:String str.replaceAll(reg,newStr)方法
$的使用:
String str = "deqkkdwqdqqqqdesafzzzzkj" 将叠词替换成单个字符
String reg ="(.)\\1+";
String str.replaceAll(reg,"$1");
意思是将叠词替换成第一个组的字符,$1即表示第一组的字符
1.4 获取:将字符串中的符合规则的子串取出
操作步骤:
1.将正则表达式封装成对象
2.让正则对象和要操作的字符串相关联
3.关联后,获取正则匹配引擎
4.通过引擎对符合规则的子串进行操作,比如取出
- 黑马程序员-正则表达式
- 黑马程序员 正则表达式
- 黑马程序员:正则表达式
- 黑马程序员---正则表达式
- 黑马程序员:正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员 正则表达式
- 黑马程序员-正则表达式
- 黑马程序员:正则表达式
- 黑马程序员-正则表达式
- 黑马程序员 正则表达式
- 黑马程序员---正则表达式
- 黑马程序员---正则表达式
- 黑马程序员-正则表达式
- 黑马程序员--正则表达式
- luasocket系列之winsocket基础补充—winsock库1
- iOS中蓝牙的实现方案
- 随机生成测试数据(rand(),srand())
- C++可变参数
- 【剑指Offer学习】【面试题34:丑数】
- 黑马程序员-----正则表达式
- Linux转发性能评估与优化-转发瓶颈分析与解决方案(补遗)
- Free Fortran Compilers
- Thking in Java---数组详解
- 根据排队论阐述路由器和高速公路的拥堵以及拥堵缓解问题(二)
- 一道CTF
- android 杀不死的服务
- 近一个月的面试总结
- 驱动编程 配置内核树