- 浏览: 114686 次
- 性别:
- 来自: 广西
文章分类
最新评论
-
greemqqran:
这方法 源码,是怎么的哦?
可变参数,数组与集合之间的转换 -
greemqqran:
Arrays.asList
可变参数,数组与集合之间的转换 -
ricoyu:
引用? super E:接收的是E类型对象应该是: ? sup ...
泛型-
第一种:1.定义匹配规则如:String qqreg = "[1-9]\\d{4,14}"; 2.得到要匹配的字串如:String QQ = "123"; 3.用String对象的matches()方法是匹配如:boolean b = QQ.matches(qqreg); 第二种:1.定义匹配规则如:String qqreg = "[1-9]\\d{4,14}"; 2.将规则封装成对象如:Pattern p = Pattern.compile(qqreg ); 3.用Pattern对象的matcher()方法匹配返回一个Matcher对象:Matcher m = p.matcher(str); 4.用Matcher对象的find()方法找是否有匹配:m.find() 5.用Matcher对象的group()方法拿出匹配的字串:m.group()
正则表达式: 是一种专门用于操作字符串的规则。 通过一些符号来表示,简化对字符串的复杂操作。 弊端:阅读性较差。 常见的操作: 1,匹配。String matches(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()) { String s = m.group(); s.replaceAll(regex,"#"); } 网页爬虫: 通过网络以及IO读取网页的源文件,并通过规则获取网页中的符合规则的数据。 比如:mail爬虫。 String mailreg = "[a-zA-Z0-9_]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"; 正则表达式中组的含义:将部分进行封装以便重用。\\num 反向引用指定组。 示例:IP地址排序。 -------------------------------------
/* 正则表达式. 是一种规则,是一种操作字符串的规则。 1,匹配。String matches(regex) 2,获取匹配内容。 3,切割。 4,替换。 */ import java.util.regex.*; import java.util.*; class RegexDemo { public static void main(String[] args) { // checkQQ2(args[0]); String QQ = "123"; String qqreg = "[1-9]\\d{4,14}"; boolean b = QQ.matches(qqreg); // System.out.println("qq="+b); String tel = "14800001234"; String telreg = "1[35]\\d{9}"; boolean b1 = tel.matches(telreg); // System.out.println("tel:"+b1); String str = "da jia ming tian bu fang jia !"; String strreg = "\\b[a-z]{3}\\b"; // strreg = "\\b[a-z]*a[a-z]*\\b"; //1.将规则封装成对象。 Pattern p = Pattern.compile(strreg); //2,要将规则作用到字符串上。因为符合规则的元素不唯一, //所以将这些元素封装到了Matcher对象中。通过Matcher对象方法可以获取需要的数据。 Matcher m = p.matcher(str); // while(m.find()) // System.out.println(m.group()); //切割:split(); String s = "sadfzzasqqqfsttttdf"; String[] arr = s.split("(.)\\1+"); for(String ss : arr) { // System.out.println(ss); } //替换 String replaceAll(regex,str); String sreg = "(.)\\1+"; s = s.replaceAll("(.)\\1+","$1"); // System.out.println("s="+s); // test_2(); checkMail(); } public static void test_1() { String s = "我我.....我我我...我我.....要要要要....要要学...学学....学学...学编编编编...编编编...程程程....程"; s = s.replaceAll("\\.+",""); s = s.replaceAll("(.)\\1+","$1"); System.out.println("s="+s); } public static void test_2() { String ip = "192.168.1.254 10.10.10.10 2.2.2.2 66.105.88.10"; ip = ip.replaceAll("(\\d+)","00$1"); ip = ip.replaceAll("0*(\\d{3})","$1"); System.out.println(ip); String[] arr = ip.split(" +"); TreeSet<String> ts = new TreeSet<String>(); for(String s : arr) { ts.add(s); } for(String s : ts) { System.out.println(s.replaceAll("0*(\\d+)","$1")); } } public static void checkMail() { String mail = "abc1@sina.com.cn"; mail = "1@1.1"; String mailreg= "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"; mailreg = "\\w+@\\w+(\\.\\w+)+"; boolean ismail = mail.matches(mailreg); System.out.println("mail:"+ismail); } /* 要求: 5~15,必须是数字,而且0不可以开头。 */ public static void checkQQ(String qq) { int len = qq.length(); if(len>=5 && len <=15) { if(qq.startsWith("0")) System.out.println("0不可以开头"); else { boolean b = true; char[] arr = qq.toCharArray(); for(int x=0; x<arr.length; x++) { char ch = qq.charAt(x); if(!(ch>='0' && ch<='9')) { b = false; break; } } if(b) { System.out.println("qq:"+qq); } else { System.out.println("出现非法字符"); } } } else { System.out.println("长度错误"); } } public static void checkQQ2(String qq) { int len = qq.length(); if(len>=5 && len <=15) { if(qq.startsWith("0")) System.out.println("0不可以开头"); else { try { Long l = Long.parseLong(qq); System.out.println("qq:"+l); } catch (NumberFormatException e) { System.out.println("非法"); } } } else { System.out.println("长度错误"); } } }
发表评论
-
动态代理+注解实现用户权限控制
2012-12-23 00:01 1250首先第一步我们需要定义一个接口UserDao p ... -
JDK动态代理模式
2012-12-22 21:51 863package cn.dhcool.dynamic.proxy ... -
代理proxy模式
2012-12-22 20:45 0静态代理模式: 需要有一个公共的借口,还有一个真实的实现类, ... -
工厂模式下出现的问题-null异常
2012-12-15 18:31 874遇到了一个问题: public class Dao ... -
内部类详解
2011-12-09 21:23 594从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
动态代理实现
2011-11-22 02:03 989package com.dhcool.proxy; ... -
内省总结
2011-11-19 02:43 778package com.dhcool.introspec ... -
线程锁
2011-10-10 13:27 784sleep(), wait(),yield(),这3个方法,s ... -
类似百度谷歌分页算法实现
2011-09-08 15:58 1543<%@ page language="j ... -
充当服务端代码
2011-08-05 16:53 636import java.net.*; import java ... -
获取文件中邮件的示例
2011-08-05 12:25 707import java.util.regex.*; impo ... -
正则表达式常用字符
2011-08-05 12:22 826构造 匹配 字符 x 字符 x ... -
InetAddress
2011-08-04 21:59 858import java.net.*; class Inet ... -
B/S socket
2011-08-04 21:08 997import java.net.*; import java ... -
TCP多线程文件上传
2011-08-04 14:51 851/* 上传图片 */ import java.io.*; ... -
网络编程基础
2011-08-04 14:25 802网络编程: 网络通讯中所需要了解的一些内容。 T ... -
一道题
2011-08-02 21:05 578/* 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 ... -
TCP
2011-08-02 20:46 715import java.net.*; import ja ... -
UDP
2011-08-02 20:35 819import java.net.*; import java ... -
mypad小程序
2011-08-02 15:48 697package menupack; import jav ...
相关推荐
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。...《学习正则表达式》适合对正则表达式感兴趣的程序员和互联网从业者。
正物色一本学习正则表达式的入门图书?恭喜,《学习正则表达式》非常适合你!本书提供大量经典简洁的示例,从零开始教你逐步掌握正则表达式。通过匹配特定单词、字符和模式,读者很快就可以自己动手使用正则表达式...
正则表达式正则表达式正则表达式正则表达式 验证程序
《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报...
让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel 正则工具」顾名思义,需要使用 “正则表达式(PCRE)” 的知识来进行操作,对于完全没有接触过正则的朋友也许有一定的入门门槛,但正则实在是太过强大...
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用...
正则表达式整理汇总,含以下内容 [1]里面在包括一个正则表达式测试小程序 RegexTester.exe [2]正则表达式30分钟入门教程.pdf] [3]正则表达式规则.doc [4]正则表达式30分钟入门教程.mht 自己整理用的,现在...
常用正则表达式 正则表达式 常用正则表达式 正则表达式
常用正则表达式大全: 匹配中文字符的正则表达式 匹配空白行的正则表达式 匹配HTML标记的正则表达式 匹配Email地址的正则表达式 匹配网址URL的正则表达式 匹配国内电话号 匹配中国邮政编码 匹配身份证 匹配ip地址 ...
java,正则表达式,详解,java正则表达式,PDF
Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。 本文主要面向对正则表达式知之甚少或...
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
正则表达式日期校验 正则表达式日期校验 正则表达式日期校验
C语言正则表达式库,兼容perl的正则表达式库,使用简介、方便
非常棒的正则表达式速成教程,号称30分钟叫你学会正则表达式常用用法。我本人学了一下,感觉不赖,不过俺比较笨,30分钟的东西学了3个多小时,已经从什么都不会变成会编各种复杂的正则筛选条件了^^!这个教程是配合...
UE正则表达式、UE正则表达式
日期正则表达式(很实用) 日期正则表达式(很实用)日期正则表达式(很实用)日期正则表达式(很实用)
正则表达式汇总