Java正则表达式使用入门

Java中正则表达式的使用是很方便的,基本上只需要使用java.util.regex包下的两个类就行,分别是Pattern和Matcher。

Pattern:正则表达式的编译表示形式,指定的正则表达式必须首先编译为此类的实例然后才可以匹配字符生成Matcher对象。

Matcher:通过Pattern对字符匹配创建,可以通过它来判断Pattern是否匹配成功,以及在匹配成功的情况下从字符串中取出需要的内容。

以下是我写的一个小例子,从一段字符串中利用正则表达式取出需要的内容:

 1 package regex;
 2
 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5
 6 public class RegexTest {
 7
 8     public static void main(String[] args) {
 9         // 需要解析的测试日志
10         String testLog = "INFO 2014-12-31 23:59:00,435 something transaction, cost time: 123, rscode: abcd, no: 1234567890";
11         // 用来解析日志的正则表达式,括号中为匹配成功之后需要取出的数据
12         String regex = "(\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d) .+, cost time: (\\d+), rscode: (\\w+), no: (\\d+)";
13
14         // 将正则表达式编译成Pattern实例
15         Pattern pattern = Pattern.compile(regex);
16         // 匹配日志,创建Matcher对象
17         Matcher matcher = pattern.matcher(testLog);
18         // 判断是否匹配成功
19         boolean flag = matcher.find();
20
21         if (flag) {
22             StringBuffer sb = new StringBuffer();
23             // 将匹配到的数据按照正则表达式中的顺序取出
24             for (int i = 1; i <= matcher.groupCount(); i++) {
25                 sb.append(matcher.group(i) + "||");
26             }
27             System.out.println(sb.toString());
28         }
29     }
30
31 }

输出结果为:2014-12-31 23:59:00,435||123||abcd||1234567890||


以上就是我对于在Java中使用正则表达式的初步理解,如有不当之处,还望各位多多指教!

--------------------------------------------------我是资源分割线----------------------------------------------

有关正则表达式的语法及使用可以参考以下网站:

http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx

时间: 2024-10-11 17:56:25

Java正则表达式使用入门的相关文章

java正则表达式的入门

一.什么时候用正则表达式? 在程序开发中,常常会需要对文本内容反复地去执行匹配.查找.提取.替换.判断.如果个人仅仅用代码去实现上述功能,耗费时间.正则表达式,可用来描述或匹配一系列符合某个句法规则的字符串的单个字符串.所以借助正则表达式,能够对含有各种字符歌词lrc文件提取有效信息,并归类保存.一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串. 二.正则表达式的使用 在java中,正则表达式主要用到两个类: Pattern,可以将其看作某个操

Java正则表达式入门

众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.  自从jdk1.4

java正则表达式入门基础

一.正则表达式术语 1)元字符 : 非一般字符,具有某种意义的字符.如 : \bX : \b边界符, 以 X开始的单词 2) 常用 : \d : 匹配一个数字 : \d ,  匹配至少一个以上数字 \d+ \b : 单词边界符 , 如 \bhe 则匹配以he开头的单词, hello等 \w : 与"[A-Za-z0-9_]"等效. 如 \w+ 匹配字符串1,2,3a(bc4,)5,6(e)f78(g) 结果为  123abc456ef78g () : 以 括号内的整串重复出现,如 : 

Java正则表达式入门1

1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 2.用途: 字符串匹配(字符匹配) 字符串查找 字符串替换 字符串分割 例如: 从网页中揪出email地址 IP地址是否正确 从网页中揪出链接 3.java中处理正则表达式的类: java.lang.String java.util.re

JAVA 正则表达式 (超详细)

(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式.正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性.在Unix世界里,正则表达式几乎没有

Java 正则表达式详解

摘自:http://www.jb51.net/article/16829.htm 许多语言,包括 Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替 换”功能.那么Java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它. 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Ap

java 正则表达式语法

java 正则表达式语法 标签: 正则表达式javawindowsvbscriptscripting电话 2012-05-20 10:11 6705人阅读 评论(1) 收藏 举报  分类: javaSe(16)  目录(?)[+] 本文目标 如何使用本教程 正则表达式到底是什么? 入门 测试正则表达式 元字符 字符转义 重复 字符类 反义 替换 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 最后,来点广告… 一些我认为你可能

Java 正则表达式详解_正则表达式

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

Java正则表达式详解

本文为转载文章,因为实在写的太好了,所以就拿过来使用了 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式.正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性.在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛. 正则表达式的引擎已被许多普通的Unix工具所实现,包括gr