------- android培训、java培训、期待与您交流! ----------
正则表达式:
是一门专门用于操作字符串的规则。通过一些符号来标示,简化对字符串的复杂操作。
弊端:阅读性差。
常见的操作:
1,匹配:String mathces(regex)
2,获取:Pattern,Matcher
Pattern p = Pattern,compile(regex);
Matcher m = p.matcher(String);
while(m.find())
{
System.out.println(m.group());}
3,切割:String split(regex);
4,替换:String replaceAll(regex,str);
示例:
String regex = "\\d{5,}";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(String);
while(m.find())
{
System.out.println(m.group());}
网页爬虫:
通过网络以及IO读取网页的源文件,并通过规则获取网页中的符合规则的数据。
比如:mail爬虫
String mailreg = "[a-zA-Z0-9]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
正则表达式中组的含义:将部分进行封装一边重用。\\num 反向引用指定数组。
示例:IP地址排序
import java.util.TreeSet;
public class RegexDemo
{
public static void main(String [] args)
{
ipSort();
}
private static void ipSort()
{
String ip = "211.64.240.23 3.3.3.3 211.64.250.21 18.23.4.57 222.33.43.2";System.out.println("排序前:"+ip);String[] ips = ip.split(" +");//根据一个或者多个空格切割成一个个ip地址TreeSet ipts = new TreeSet();for (String ipstr : ips){
ipts.add(ipstr);
}System.out.println("排序后:");for(String ipstr : ipts){
ipstr = ipstr.replaceAll("0*(\\d+)","$1"); //$1捕获组1的内容,也就是从左到右第一个括号内的内容System.out.print(ipstr+" ");
}
}
}