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(); } } }
|