黑马程序员技术交流社区
标题: java基础--正则 [打印本页]
作者: 周发建 时间: 2016-3-29 10:21
标题: java基础--正则
一、正则表达式(一)规则用于操作字符串数据
[abc] 包含a、b、c
[^abc] 非包含a、b、c
[a-zA-Z]字母大小写
[a-d[m-p]]a-d或m-p
\d 数字
\D 非数字
\s 空白
\S 非空白
\w 单词字符
\W 非单词字符
+ 1次或多次
* 0次或多次
(.)\\1+ 组的使用,叠词
String类的方法
matches(String reg); 匹配
split(String reg); 切割
replaceAll(String reg, String);替换
(二)替换电话号码//替换电话号码
public static void phoneNumber(){
String tel = "18310100822";
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
System.out.println(tel);
}
(三)匹配//匹配
public static void cMatcher(){
String str = "abc bb bcd ade bcrr";
//Pattern 正则类
Pattern p = Pattern.compile("\\b[a-z]{3}\\b"); // \b单词边界
Matcher m = p.matcher(str);
while(m.find()){
String s = m.group();
System.out.println(s);
}
}
(四)治口吃//治口吃
public static void kouchi(){
String str = "我我我要要要学知识识识识,能能帮助我我我我学习吗吗吗?";
str = str.replaceAll("(.)\\1+", "$1");
System.out.println(str);
}
(五)Ip地址排序//IP地址排序
public static void ipSort(){
String ip_str = "192.168.1.130 127.0.0.1 105.70.11.55 3.3.3.3";
//1. 补0
ip_str = ip_str.replaceAll("(\\d+)", "00$1");
//2. 每段保留3位
ip_str = ip_str.replaceAll("0*(\\d{3})", "$1");
//3. 切割
String[] ips = ip_str.split(" +");
//4. 比较
TreeSet<String> ts = new TreeSet<String>();
for(String ip: ips){
ts.add(ip);
}
//5. 去除每段前的0
String str = "";
for(String ip: ts){
str += ip.replaceAll("0*(\\d+)", "$1")+" ";
}
//5. 打印
System.out.println(str);
}
(六)校验Email//校验email
public static void regEmail(){
String email = "zhoujian@sina.com";
boolean b = email.matches("\\w+@\\w+(\\.\\w+){1,3}");
System.out.println(b); //true
}
(七)网页爬虫//网页爬虫
public static void inteCrawler() throws IOException{
//网页爬虫:是在互联网上查找需要信息的程序,例如:爬邮箱
//1. 读取的信息
URL url = new URL("http://www.sina.com.cn");
BufferedReader bfr = new BufferedReader(new InputStreamReader(url.openStream()));
//2. 对读取的信息进行匹配,从中获取需要的信息
String reg = "\\w+@\\w+(\\.\\w+)+";
Pattern p = Pattern.compile(reg);
//3. 将符合条件的信息集中存储
List<String> list = new ArrayList<String>();
String line = null;
while((line = bfr.readLine())!=null){
Matcher m = p.matcher(line);
while(m.find()){
list.add(m.group());
}
}
System.out.println(list);
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |