java正则表达式
来源:互联网 发布:电脑网络参数怎么设置 编辑:程序博客网 时间:2024/06/05 04:41
一、符号表示
(1)字符
. \\.
任何字符 .
数字 [0-9] \d
单词字符 [a-zA-Z0-9] \w
其他字符 [^a-zA-Z0-9]
反斜线 \\
换行 \n
回车 \r
(2)数量词
一次或一次也没有 ?
零次或多次 *
一次或多次 +
恰好n次 {n}
至少n次 {n,}
至少n次,不超过m {n,m}
(3)边界匹配器
行的开头 ^
行的结尾 $
一个单词边界 \b
非单词边界 \B
二、正则表达式的功能
正则表达式主要是针对字符串进行操作,可以简化对字符串的复杂操作,其主要功能有匹配、切割、替换、获取。
1、匹配
检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:
String str="abc";
Stringreg="[a-zA-Z]\\d?";//此表达式表示字符串的第一位只能是字母,第二位只能是数字或没有
boolean flag=str.matches(reg);//返回结果为true
2、切割
所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:
Stringstr="zhangsan,lishi,wangwu";
String reg=",";//表示以逗号作为切割符
String[] arr=str.split(reg);//返回结果为{“zhangsan”,"lisi","wangwu}
3、替换
即将字符串中符合规则的字符替换成指定字符,如:
String str="sfhh13hjas466247482";
str.replaceAll("\\d{3,}","#");//表示将连续出现三个或三个以上的数字替换成“#”,输出结果为sfhh13hjas#
4、获取
即获取与规格相符的字符串,其步骤为:
①将正则表达式封装成对象
②让正则表达式和要操作的字符串相关联,获得匹配器对象
③获取正则匹配引擎
④通过引擎对符合规则的子串进行操作:如
String str="ming tian jiu yaofang jia le";
Stringreg="\\b[a-z]{3}\\b";//"//b"表示单词边界
Pattern p=Pattern.compile(reg);
Matcher m=p.matcher(str);// 获得匹配器
while(m.find()){
System.out.println(m.group(0));
}//输出所有的匹配结果
三、两个常用的类
Pattern类
Pattern类的实例表示以字符串形式指定的正则表达式,其语法类似于Perl所用的语法。
用字符串形式指定的正则表达式,必须先编译成Pattern类的实例。生成的模式用于创建Matcher对象,它根据正则表达式与任意字符序列进行匹配。多个匹配器可以共享一个模式,因为它是非专属的。
用compile方法把给定的正则表达式编译成模式,然后用matcher方法创建一个匹配器,这个匹配器将根据此模式对给定输入进行匹配。pattern 方法可返回编译这个模式所用的正则表达式。
Matcher类
通过调用某个模式的matcher方法,从这个模式生成匹配器。 匹配器创建之后,就可以用它来执行三类不同的匹配操作:
(1)matches方法根据此模式,对整个输入序列进行匹配。
(2)lookingAt方法根据此模式,从开始处对输入序列进 行匹配。
(3)find方法扫描输入序列,寻找下一个与模式匹配的地方。
这些方法都会返回一个表示成功或失败的布尔值。如果匹配成功,通过查询 匹配器的状态,可以获得更多的信息。
四、常用例子:
(1)判断是否是数字或是否包含数字
public static boolean isDigit(Strings) {
returns.matches("\\d{1,}");
}
public static boolean hasDigit(String s) {
returns.matches(".*\\d+.*");
}
(2)截取数字第一次出现的位置
public static StringgetNumbers(String content) {
Pattern pattern =Pattern.compile("\\d+");
Matcher matcher =pattern.matcher(content);
while(matcher.find()) {
returnmatcher.group(0);
}
return"";
}
(3)判断是否是汉字
if((int)char>255)
- Java 正则表达式正则
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式详解_正则表达式
- java正则表达式!正则表达式踩坑!!!
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- TUXEDO中间件介绍及应用
- SetupDiGetClassDevs-使用SetupDi系列函数进行设备信息的管理
- JAVA设计模式之代理模式
- session.createQuery()与createSQLQuery()区别
- 关于sharesdk微信登录遇到的坑
- java正则表达式
- Vero.Machining.Strategist.2017.R1.Win64 1CD 最新版本
- EditText软键盘设置下一步调到指定edittext
- window.frames[iframe].document 在ie可以用,在360、火狐中都不兼容?
- caffe下draw_net.py的使用
- 今天写了一些基础代码,发现自己的奇技淫巧略微多了些
- 关于大神note3手机数据备份
- 不会写代码的产品不是好产品,懂代码的产品才能走得远
- maven POM.xml 标签详解