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(Stringsource){

      //两个分组

      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

 

posted @ 2017-04-25 13:56  jzdwajue  阅读(104)  评论(0编辑  收藏  举报