正则表达式
来源:互联网 发布:html源码怎么安装 编辑:程序博客网 时间:2024/06/06 02:57
正则表达式:符合一定规律的表达式
作用:专门用于操作字符串
特点:用一些特定的符号表示一些代码的操作。这样简化书写
好处:可以简化对字符串的复杂操作
弊端:符号定义越多,符号越长,阅读性越差
具体操作功能:
1:匹配(String的matches(regex)方法),用规则匹配整个字符串,只要有一处不符合就结束,并返回false
2:切割(String的split()方法)
3:替换(String的replaceAll())
4:获得 将祖父传中符合规则的字串取出。步骤①将正则表达式封装成对象②让正则对象和要操作的字符串进行相关联③关联后,获取正则匹配引擎④通过引擎将符合规则的字符串进行取出操作
匹配例子
简单验证qq号码(要求是长度为5—15位的数字)
public static void main(String args[]){
String qq = "18735621s3";
String regex = "[1-9]\\d{4,14}";
boolean b = qq.matches(regex);
if(!b){
System.out.println("格式正确");
}
else
System.out.println("格式错误");
}
切割例子
public static void splitDemo(){
String str = "zhangsan lisi wangwu";
String regex = " +";//多个空格
String[] arr = str.split(regex);
for(String s:arr){
System.out.println(s);
}
}
注意切割的时候如果是正则表达式里的特殊符号,就要注意了比如“点”
String str = "zhangsan.lisi.wangwu";
String regex = "\\.";
String str = "c:\\java\\a.text";
String regex = "\\\\";
String str = "shiadiyiaadasofaccasdkhuu";//按照叠词进行切割aa cc uu
String regex = "(.)\\1";//这里使用正则表达式里的组() 点表示任意字符 java回个组自动编号好\\1表示第一组相当于重用
替换例子
public static void replaceAllDemo(){
String str = "we19911115qq997911111dianhua1527121111";
String regex = "\\d{5,}";//多个空格
String newstr = "#";
str = str.replaceAll(regex, newstr);
System.out.println(str);
}
public static void replaceAllDemo(){
String str = "wesdssssdaofueeeassdasduqqq";//将zzzzz——》z
String regex = "(.)\\1+";//多个空格
String newstr = "$1";//$1获取前边规则中的第一组
str = str.replaceAll(regex,newstr);
System.out.println(str);
}
获取例子
public static void getDemo(){
String str = "ming tian jiu yao fang jia le,tong zhi men ";
String regex = "\\b[a-z]{3}\\b";
//讲规则封装成对象
Pattern p = Pattern.compile(regex);
//让正则对象和要做用的字符串相关联,获取匹配器对象
Matcher m = p.matcher(str);
while(m.find()){//讲规则作用到字符串上,并进行符合规则的字串查找
System.out.println(m.group());//获取别配后的结果
System.out.println(m.start()+"·····"+m.end());
}
}
非单词字符:[^\w]
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 使用TreeSet集合比较Comparable接口和Comparator接口的区别
- 内存Dump原理
- 漫谈大数据仓库与挖掘系统(一):前言:大数据的价值
- 漫谈大数据仓库与挖掘系统(二):层次、维度与主题
- 漫谈大数据仓库与挖掘系统(三):ETL的开始——数据的传输和同步
- 正则表达式
- VIM的几个使用技巧
- python 解析线性方程组
- 一些hadoop分析的文章链接
- 【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
- 在Heroku上部署Java应用三步曲
- MySQL的數據庫drop不了Cannot delete or update a parent row: a foreign key constraint fails
- EXTJS4和JQuery选择器比较
- Hadoop、Pig、Hive、NOSQL 学习资源收集