--------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
正则表达式:
作用:用于专门操作字符串
特点:可以用特定字符来表示代码规则,简化了书写
好处:简化对字符串的复杂操作
所以学习正则表达式就是在学习特殊符号的使用
传统方式校验使用了string类的方法进行组合判断。但是代码过于复杂
正则表达式中,\要出现就成对出现
//5-15位,0不能开头,不能为字母
boolean b = qq.matches("[1-9][0-9]{4,14}");
//第一个字符只能是abc,只能规则一个字符
boolean c = str.matches("[abc]");
//第二位要么出现一次要么没有
boolean e = str1.matches("[a-z]\\d?");
x? 要么一次要么一次也没有
x* 零次或多次
x+ 一次或多次
x{n}? x恰好n次
x{n,}? X至少N次
x{n,m}? n-m次
//手机号
boolean f = tel.matches("[1][5,3,8]\\d{9}");
split:切割
tel.split(" +");//按照多个空格来切割,返回一个数组
String[] s = str1.split("\\.");//.是正则表达式的特殊字符需要转义
String str = "c:\\a\\1.txt";//转义\\
str.split("\\\\");
String str = "jhaasdkkhas";
//第一个字符任意所以为.
//(.)封装成一个组 每个组都有一个编号 \n 表示引用哪一个组 \n需要被转义
//(.)\\1+表示出现一次或者多次
String[] s = str.split("");
正则表达式的弊端:阅读行极差
替换 replaceAll
//超过5个数字就用#表示
String str = "asd65as786d8as76d86d8123123asdqr";
String string = str.replaceAll("\\d{5,}", "#");
替换2
//叠词替换
String str = "aaaaaasdas2232";
String s = str.replaceAll("(.)\\1+", "?");
System.out.println(s);
//将重叠的字母替换成单个字母
String str = "aaaaaasdas2232";
//通过$获取前面规则中的组$1
String s = str.replaceAll("(.)\\1+", "$1");
System.out.println(s);
//获取指定规则的字符串
//步骤:
//1.将正则表达式封装成对象
String str = "ming tian jiu yao fang jia la";
String reg = "\\b[a-z]{3}\\b";//规则
//2.让正则对象和要操作的字符串相关联
Pattern p = Pattern.compile(reg);
//其实string类中的match方法用的就是pattern和match对象完成的
//只不过封装后用起来简单但单一
Matcher m = p.matcher(str);
//3.关联后获取正则匹配引擎
//这一步是必须的先find 在group
boolean b;
//boolean b = m.find();//将规则作用于字符串,并进行符合规则的子串查找
//System.out.println(m.group());//用户获取匹配后的结果
//4.通过引擎对符合规则的子串进行操作,比如取出
//同一个匹配器使用同一个指针
while(b = m.find())
{
System.out.println(m.group());
//子串的索引位置
System.out.println(m.start()+"..."+m.end());
}
Test
//如果想知道字符串是对是错使用匹配
//如果想用一个字符串变成另一个。使用替换
//将一个字符串变成多个 切割,切割获取规则以外的子串
//拿到符合需求的字符串子串,获取获取符合规则的子串
String str = "我我..要要...学学学学学....编程";
str = str.replaceAll("\\.", "");
str = str.replaceAll("(.)\\1+", "$1");
System.out.println(str);
IP排序
//将IP按照地址段进行排序
//先将所有IP地址补满三位补零
//每一段直取三位
String str = "192.144.23.4 123.4.33.1 23.45.33.1 123.43.22.5";
str = str.replaceAll("(\\d+)", "00$1");
str = str.replaceAll("0*(\\d{3})", "$1");
String[] strArray = str.split(" ");
TreeSet<String> ts = new TreeSet<String>();
for(String s :strArray)
{
ts.add(s);
}
System.out.println();
邮件校验
String str = "kill@163.com";
System.out.println(str.matches("[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.([a-zA-Z0-9]+)+"));
读取文件中的邮箱字符串
BufferedReader br = new BufferedReader(new FileReader("1.txt"));
String str = null;
String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.([a-zA-Z0-9]+)+";
Pattern p = Pattern.compile(regex);
while((str = br.readLine())!= null)
{
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println(m.group());
}
}
相关推荐
java的正则表达式的详细说明,里面有详细的说明和例子,是要学习java正则表达式的好资料。
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式
JAVA正则表达式JAVA正则表达式JAVA正则表达式
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
001_正则表达式初体验.wmv 002_什么是正则表达式.wmv 003_实例(统计出现次数) .wmv 004_实例(文本替换).wmv 005_正则表达式之元字符.wmv 006_正则表达式元字符提取数据.wmv 007_正则表达式元字符整理数据.wmv 008_...
java,正则表达式,详解,java正则表达式,PDF
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习
个人总结
正则表达式替换文本,已测试通过,如有更新另行通知
Java正则表达式Java正则表达式Java正则表达式Java正则表达式Java正则表达式Java正则表达式
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式一些有用的C_正则表达式...
JAVA_正则表达式简介详解
正则表达式口诀及教程正则表达式口诀及教程
正则表达式基础正则表达式基础正则表达式基础正则表达式基础
正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则表达式学习入门到精通正则...
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效