Java 正则表达式
来源:互联网 发布:mac windows 文件系统 编辑:程序博客网 时间:2024/06/07 19:26
前言:跟着偶操作,一篇文章带你练熟正则表达式。
原文出处:http://blog.csdn.net/u014158743/article/details/52939607
这里有一篇讲语法的,可以看看,更值得一提的是不得不说这个网站很清晰,很适合入门。
http://www.runoob.com/java/java-regular-expressions.html
Demo1.java
public class Demo1 { /** * 正则表达式:专门针对字符串的 */ public static void main(String[] args) { String qq = "32398485794"; //boolean boo = checkQQ(qq); //System.out.println(boo); String regex = "[1-9]\\d{4,14}";//验证 qq号的正则表达式 boolean b = qq.matches(regex); System.out.println(b); } //判断qq号是否正确,5--15,不能以0开头,必须全是数字 public static boolean checkQQ(String qq) { int len = qq.length(); if(len>=5 && len<=15) { if(!qq.startsWith("0")) { try { long num = Long.parseLong(qq); return true; }catch(NumberFormatException e) { e.printStackTrace(); } } else System.out.println(qq+"号以0开头了"); } else System.out.println(qq+"号的长度不合法"); return false; }}
Demo2.java
public class Demo2 { /** * @param args */ public static void main(String[] args) { String ss = "booooooook"; String regex = "bo+k"; boolean boo = ss.matches(regex); System.out.println(boo); }}
Demo3.java
public class Demo3 { /** * 正则表达式针对字符串的常用操作: * 1:匹配: 实际用的是String类中的 boolean matches(String regex)方法 * 2:切割: 实际用的是 String类中的 Sring[] split(String regex) * 3:替换: 实际使用的是 String replaceAll(String regex, String replacement) * 4:获取: * Pattern:把字符串形式的正则表达式编译成Pattern类型的对象 * Matcher:从指定的字符串中查找符合正则规则的内容 */ public static void main(String[] args) { // piPei(); // qieGe(); // tiHuan(); huoQu(); } // 获取 public static void huoQu() { String ss = "zhu yi la,ming tian fang jia."; String regex = "[a-z]{4}"; // 把字符串形式的正则表达式编译成Pattern类型的对象 // Pattern类型的对象不具备从字符串中获取内容的功能 Pattern pattern = Pattern.compile(regex); // Matcher具备从字符串中获取内容的功能 // 从字符串ss中或取符合pattern规则的内容 Matcher matcher = pattern.matcher(ss); while (matcher.find()) { System.out.println(matcher.group()); } } // 替换 public static void tiHuan() { // String ss = "lisi****zhangsan&&&&&wangwu##########liunengaa"; // String regex = "(.)\\1+"; // ss = ss.replaceAll(regex, "$1"); // String ss = // "woieurowie2983748934789lskdjflsk039485094lksdjflk338949"; // String regex = "\\d{8,}"; // ss = ss.replaceAll(regex, "****"); String ss = "13545127892"; String regex = "(\\d{3})\\d{4}(\\d{4})"; ss = ss.replaceAll(regex, "$1****$2"); System.out.println(ss); } public static void qieGe() { // String ss = "lisi.zhangsan.wangwu.liuneng"; // String regex = "\\."; // String ss = "lisi zhangsan wangwu liuneng"; // String regex = " +"; String ss = "lisi****zhangsan&&&&&wangwu##########liunengaa"; String regex = "(.)\\1+"; String[] arr = ss.split(regex); for (String str : arr) { System.out.println(str); } } // 匹配 public static void piPei() { String tel = "18623568912"; String regex = "1[3578]\\d{9}"; boolean boo = tel.matches(regex); System.out.println(boo); }}
Demo4.java
public class Demo4 { /** * * 练习1:我我..我我..我.我要...要要...要要...要学学....学学学...编编...编编..编程...程程...程程..程.程 * 要求,转成:我要学编程。 */ public static void main(String[] args) { String ss = "我我..我我..我.我要...要要...要要...要学学....学学学...编编...编编..编程...程程...程程..程.程"; ss = ss.replaceAll("\\.+", ""); System.out.println(ss); ss = ss.replaceAll("(.)\\1+", "$1"); System.out.println(ss); }}
Demo5.java
public class Demo5 { /** * 练习2:对ip地址按照数值顺序排序。 * 192.168.001.200 010.010.010.010 004.004.004.004 127.000.000.001 */ public static void main(String[] args) { String ss = "192.168.1.200 10.10.10.10 4.4.4.4 127.0.0.1"; //在每个地址前补两个0 ss = ss.replaceAll("(\\d{1,3})", "00$1"); System.out.println(ss); //每个地址值只保留后三位 ss = ss.replaceAll("0*(\\d{3})", "$1"); System.out.println(ss); String[] arr = ss.split(" +"); Arrays.sort(arr); for(String str:arr) { System.out.println(str.replaceAll("0*(\\d{1,3})", "$1")); } }}
Demo6.java
public class Demo6 { /** * 练习3:对邮件地址进行匹配。 */ public static void main(String[] args) { String email = "abc@sina.com.cn"; //String regex = "[a-zA-Z_0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,2}"; String regex = "\\w+@\\w+(\\.\\w+)+"; boolean boo = email.matches(regex); System.out.println(boo); }}
Demo7.java
public class Demo7 { /** * 练习4:实现网页爬虫 */ public static void main(String[] args) throws IOException { //getEmails(); getEmail(); } //从网络上的html文件中获取邮箱 public static void getEmail() throws IOException { String path = "http://localhost:8080/myweb/mail.html"; URL url = new URL(path); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String regex = "\\w+@\\w+(\\.\\w+)+"; Pattern pattern = Pattern.compile(regex); String line = null; while((line = br.readLine())!=null) { Matcher m = pattern.matcher(line); while(m.find()) { System.out.println(m.group()); } } } //从本地文件中获取邮箱 public static void getEmails() throws IOException { BufferedReader br = new BufferedReader(new FileReader("fiile\\mail.html")); String regex = "\\w+@\\w+(\\.\\w+)+"; Pattern pattern = Pattern.compile(regex); String line = null; while((line =br.readLine())!=null) { Matcher m = pattern.matcher(line); while(m.find()) { System.out.println(m.group()); } } }}
1 0
- Java 正则表达式正则
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式详解_正则表达式
- java正则表达式!正则表达式踩坑!!!
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- 【PHP】冒泡排序法排序
- MongoDB添加用户验证,设置用户名和密码
- c++
- Objective-C编码规范
- Java基础知识总结(绝对经典)
- Java 正则表达式
- netty框架学习之初始篇---多客户端的实现
- CoordinatorLayout使用详解
- SecureCRT设置字条编码
- Linux命令之"tar"
- linux安转软件指定目录件
- 【HDU-1023】 Train Problem II 【卡特兰数+高精度】
- iOS开发 之 navigationbar 与 tabbar 的显示与隐藏
- session的一级缓存