浅谈Java中关于正则的使用
来源:互联网 发布:虚拟立铣编程 编辑:程序博客网 时间:2024/06/14 00:11
研究了一下javaAPI文档,在此对正则的使用做些总结说明。
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); if(m.matches()) { System.out.println(m.group()); }}}这段代码实现的功能是:用编好的正则模式来匹配给定的目标字符串,如果检测匹配成功就返回在目标字符串中匹配的字符序列。
用到的方法有:
pattern类中的compile方法、matcher方法以及matches方法
static Patterncompile(String regex) 将给定的正则表达式编译到模式中。
Matchermatcher(CharSequence input) 创建匹配给定输入与此模式的匹配器。
static booleanmatches(String regex, CharSequence input) 编译给定正则表达式并尝试将给定输入与其匹配。
matcher类中的group方法
Stringgroup() 返回由以前匹配所匹配的输入子序列。所以上面的这段代码运行结果为:
aaaaab
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { Pattern p = Pattern.compile("\\d{3,5}"); Matcher m = p.matcher("123-23245-21-456544849846"); if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); } m.reset(); if(m.find()) { System.out.println(m.group()+"\t"+m.start()+"-"+m.end()); }}}这里又用到的方法有:
matcher类中的find方法、reset方法、start方法和end方法
boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。
Matcherreset() 重置匹配器。
int start() 返回以前匹配的初始索引。
int end() 返回最后匹配字符之后的偏移量。这个程序的运行结果为:
1230-3232454-94565413-184849818-231230-3
注意:通过上述例子可以看到,每次使用find()方法匹配时都会将原字符串进行截取操作,也就是原字符串长度减小。
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) { String str="123-23245-21-4565448"; Pattern p = Pattern.compile("((\\d*)-)*\\d*"); Matcher m = p.matcher(str); System.out.println(m.matches()); String[] strs=str.split("-"); for(int i=0;i<strs.length;i++) { System.out.println(strs[i]); }}}这里用到了spilt方法来按指定正则分割匹配字符串。
String[] split(CharSequence input) 围绕此模式的匹配拆分给定输入序列。这个程序的运行结果如下:
true12323245214565448
阅读全文
0 0
- 浅谈Java中关于正则的使用
- 浅谈关于Java的注解使用
- java中正则的使用
- 浅谈JS中正则表达式(RegExp)的使用
- 关于js中正则的使用
- 关于java中正则的一个小部分
- 浅谈 Java 中 this 的使用
- 浅谈 Java 中 this 的使用
- 浅谈Java中this的使用
- 浅谈 Java 中 this 的使用
- 浅谈 Java 中 this 的使用
- 浅谈 Java 中 this 的使用
- 胡博君浅谈Java中static的使用
- 浅谈Java中static的使用
- 浅谈java中nio的使用方式
- java中正则表达式的使用
- Java中正则表达式的使用.
- Java中正则表达式的简单使用
- Visual Studio+VAssistX自动添加注释,函数头注释,文件头注释
- 如何解决linux脚本中切换路径报错的问题
- 从零开始构建支持TLS1.2的Web服务器Linux版(五)选装-MySql(yum安装方式)
- 数值矩阵基础与点运算符和矩阵运算符
- vue百分比图总结规律
- 浅谈Java中关于正则的使用
- jvm类加载机制
- SpringMVC札集(10)——SSM框架整合
- 奇数阶幻方
- A successful Git branching model
- 290. Word Pattern
- listview入门(采用layoutlnflater打气筒创建一个view对象)
- oracle中to_date和to_char的区别
- 关于libusb-win32开发的经验