黑马程序员技术交流社区
标题:
正则表达式的总结
[打印本页]
作者:
刘_鑫
时间:
2013-7-2 13:27
标题:
正则表达式的总结
本帖最后由 刘_鑫 于 2013-7-2 13:54 编辑
基本的操作
正则表达式定义:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。
正则表达式的具体操作:
1,匹配 String matches()方法.
2,分割 String split()方法.
3,替换 String replaceAll(String regex,String str)
4,获取
1.将正则表达式封装成对象
Pattern p = Pattern.compile(regex);
2.正则表达式和要操作的字符串相关联,获得匹配器对象
Matcher m = p.matcher(str);
3.进行符合规则的子串查找
m.find();
4.获取匹配后的我就不写正则表达式的构造摘要,就写一些自己学到的基本的操作.构造摘要查API都可以看到.
正则表达式定义:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。
正则表达式的具体操作:
1,匹配 String matches()方法.
2,分割 String split()方法.
3,替换 String replaceAll(String regex,String str)
4,获取
1.将正则表达式封装成对象
Pattern p = Pattern.compile(regex);
2.正则表达式和要操作的字符串相关联,获得匹配器对象
Matcher m = p.matcher(str);
3.进行符合规则的子串查找
m.find();
4.获取匹配后的结果
m.group();
-----------------------------------------
例:
叠词,aa ,bbb 等
String reg = "(.)\\1+"; //为了让规则的结果被重用,可以把规则放在一个组里面,用()包含起来,如果要调用此组,用"
\\1
"数字表
示,1代表第一组.如果有多个组,捕获组可以通过从左到右计算其开括号来编号.例如,在表达式 ((A)(B(C))) 中,存在四个这样的
组:
1 ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)
查找出来的叠词可以用来切割
String str = erkktyqqquizzzzzo;
str.split(reg); //er ty ui o
可以把重复的字符串替换成单个字母
str.replaceAll(reg,"$1");// 用$1来表示已经匹配且提取出来的组
一定要会的例子,对邮件地址校验
代码:
String str ="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
较为精确的匹配
代码:
reg = "\\w+@\\w+(\\.\\w+)+";
//相对不太精确的匹配
结果
m.group();
-----------------------------------------
例:
叠词,aa ,bbb 等
String reg = "(.)\\1+"; //为了让规则的结果被重用,可以把规则放在一个组里面,用()包含起来,如果要调用此组,用"
\\1
"数字表
示,1代表第一组.如果有多个组,捕获组可以通过从左到右计算其开括号来编号.例如,在表达式 ((A)(B(C))) 中,存在四个这样的
组:
1 ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)
查找出来的叠词可以用来切割
String str = erkktyqqquizzzzzo;
str.split(reg); //er ty ui o
可以把重复的字符串替换成单个字母
str.replaceAll(reg,"$1");// 用$1来表示已经匹配且提取出来的组
一定要会的例子,对邮件地址校验复制内容到剪贴板代码:
String str ="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";较为精确的匹配复制内容到剪贴板代码:
reg = "\\w+@\\w+(\\.\\w+)+";//相对不太精确的匹配
作者:
赵海洋
时间:
2013-7-2 13:47
这种总结类的帖子不要设置成未解决的类型,请楼主修改一下,可以改成已解决。
作者:
刘_鑫
时间:
2013-7-2 13:55
嗯 好。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2