码迷,mamicode.com
首页 > 编程语言 > 详细

java正则表达式学习记录

时间:2015-07-17 16:20:15      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:java   正则表达式   

java正则表达式学习记录

 

 正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于搜索、编辑或者是操作文本和数据。它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式。正则表达式的变化是复杂的,一旦你理解了它们是如何被构造的话,你就能解析或者构建任意的正则表达式了。

 

字符类

字符类

[abc]

a, b 或 c(简单类)

[^abc]

除 a, b 或 c 之外的任意字符(取反)

[a-zA-Z]

a 到 z,或 A 到 Z,包括(范围)

[a-d[m-p]]

a 到 d,或 m 到 p:[a-dm-p](并集)

[a-z&&[def]]

d,e 或 f(交集)

[a-z&&[^bc]]

除 b 和 c 之外的 a 到 z 字符:[ad-z](差集)

[a-z&&[^m-p]]

a 到 z,并且不包括 m 到 p:[a-lq-z](差集)

 

预定义字符类

预定义字符类

.

任何字符(匹配或者不匹配行结束符)

\d

数字字符:[0-9]

\D

非数字字符:[^0-9]

\s

空白字符:[\t\n\x0B\f\r]

\S

非空白字符:[^\s]

\w

单词字符:[a-zA-Z_0-9]

\W

非单词字符:[^\w]

 

词量

量 词 种 类

意  义

贪婪

勉强

侵占

X?

X??

X?+

匹配 X 零次或一次

X*

X*?

X*+

匹配 X 零次或多次

X+

X+?

X++

匹配 X 一次或多次

X{n}

X{n}?

X{n}+

匹配 X n 次

X{n,}

X{n,}?

X{n,}+

匹配 X 至少 n 次

X{n,m}

X{n,m}?

X{n,m}+

匹配 X 至少 n 次,但不多于 m 次

 

边界匹配器

^

行首

$

行尾

\b

单词边界

\B

非单词边界

\A

输入的开头

\G

上一个匹配的结尾

\Z

输入的结尾,仅用于最后的结束符(如果有的话)

\z

输入的结尾

 

示例:使用分组去文件的扩展名

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

publicclass Foo {

   publicstatic String testFoo(String source){

      //两个分组

      Pattern p = Pattern.compile("(\\w+).(.+)");

     

      Matcher mat = p.matcher(source);

      mat.find();

      //打印分组数

      System.out.println(mat.groupCount());

      //返回第二个分组内容

      returnmat.group(2);

   }

  

   publicstaticvoid main(String[] args) {

      System.out.println(testFoo("User3.java"));

   }

}

打印结果:

2

java

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

java正则表达式学习记录

标签:java   正则表达式   

原文地址:http://blog.csdn.net/neweastsun/article/details/46926853

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!