1要匹配手机号如13xxx,15xxx,18xxx代码如下
String tel = "13xxxxxxxxx;"
String telReg = "1[358]\\d{9}";
判断boolean flag = tel.matches(telReg);是则返回true否则返回false
2要切割字符串如String str = "dsljeig.asjgioja.asgwgh";
则匹配的字符串是String reg = "\\.";
切割字符串是String [] arr = str.split(reg);
for(String s:arr){
String str = s;
}
3匹配空格String str = "asetg awetgw4g erywyh";
匹配规则:String reg = " +";
判断是否匹配:str.matches(reg);
4匹配String str = "c:adf\\ag\\a.txt";
String reg = "[url=]\\\\[/url]";
String[] arr = str..split(reg);
5按照叠词进行切割
当你想对一个结果重用是你可以把它封装成一个组
String str = "qwdddqaweeeeeeeaeggdsegsdgsssfewghws";
String reg = "(.)\\1+";//(.)代表任意字符1+代表多个相同的字符(叠词)
String [] arr = str.split(reg);
arr={qw,qaw,dsegsdg,fewghws}
6正则表达式(获取)
String str = "ming tian jiu yao fang jia le, shi da jia";
String reg = "<a href="file://\\b[a-z]{3}\\b";//">\\b[a-z]{3}\\b";//取出三个字符的字符串
Pattern p = Pattern.compile(reg);//讲规则封装成对象
Matcher m = p.macher(str);//将正则对象和要作用的字符串相关联,获取匹配器对象
//其实String中的macher方法就是用得Macher中的方法,只不过被string封转后用起来简单,功能单一
while(m.find())
{
String s = m.group();
}
7练习
String = “我我我....要要....要...学....学...学学....编....编....编....程...编程”;切换成我要学编程
思路如下
1如果只想知道该字符串是否是对错,使用匹配
2想要将已有的字符串替换成另一个字符串,则使用替换
3想要按照自己的方式将字符串换成多个字符串,则使用切割,获取规则以外的字符串
4想要拿到想要获得字符串则使用或缺,或缺规则之内的字符串
具体做法
1先将.去掉
str = str.replaceAll("\\.+"," ");
2再将多个重复的字符转换成一个字符
str = str.replaceAll("(.)\\1+","$1");
邮箱匹配模式:String reg = "[a-zA-Z0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
8网页爬虫:获取网页中的邮箱地址
public void getHtmlMail(){
URL = new URL("网页地址");
URLConnection con = URL.openConnection();
BufferedReader bufIn = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line = null;
String mailreg = "\\w+@\\w+(\\.\\w+)+";
Pattern p = Pattern.compile(mailreg);
while((line = bufIn.readLine())!=null){
Matcher m = p,matcher(line);
while(m.find()){
String s = m.group();
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |