黑马程序员技术交流社区

标题: 正则表达式总结 [打印本页]

作者: 刘_鑫    时间: 2013-7-2 14:28
标题: 正则表达式总结
基本的操作
正则表达式定义:符合一定规则的表达式。
   作用:用于专门操作字符串。
   特点:用于一些特定的符号来表示一些代码操作,这样就简化书写。
正则表达式的具体操作:
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+)+";//相对不太精确的匹配





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2