java正则表达

一、正则表达式

  一个正则表达式是含有一些具有特殊意义字符的字符串,这些字符称作正则表达式中的元字符。例如“\\dcat”中的\\d就是具有特殊意义的元字符,代表0到9中的任何一个字符。

表1                                                                  元字符

元字符 在正则表达式中的写法                   意  义    

.

\d

\D

\s

\S

\w

\W

\p{punct}

.

\\d

\\D

\\s

\\S

\\w

\\W

\\p{Punct}

代表除换行符以外任何一个字符

代表0至9任何一个数字

代表任何一个非数字字符

代表空格类字符,‘\t’、‘\n’、‘\x0b’

代表非空格类字符

代表可用于标识符的字符(不包括美元符号)

代表不能用于表示符的字符

代表标点符号:!@#¥%……&*()+-*/[]{}\';.,/?><

 

 

 

 

 


 

 

 

 

  元字符“.” 可以匹配除了换行符以外的任何一个字符。若想匹配包括换行符的任意字符可以用"[\\s\\S]"匹配。

  在正则表达式中可以用方括号扩起若干个字符来表示一个元字符,该元字符表示方括号中任意一个字符。方括号元字符的意义如下:

[abc]:代表a、b、c、中任意一个字符。

[^abc]:代表除了a、b、c以外的任意字符。

[a-zA-Z]:代表英文字母中任意一个。

[a-d]:代表a - d 中任意一个字符。

[a-d[m-p]]:代表a至d或m至p中任意一个(并)。

[a-z&&[def]]:代表d、e、f、中任何一个(交)。

[a-f&&[^bc]]:代表a、d、e、f(差)。

  在正则表达中可以用限定符。

表2                    限定符

带限定符号的模式      意  义  

X?

X*

X+

X{n}

X{n,}

X{n,m}

XY

X|Y

X出现0次或1次

X出现0次或多次

X出现1次或多次

X出现n次

X出现至少n次

X出现n次至m次

X后跟Y

X或Y

 


 

 

 

 

 

 

 

 

 

 

 


 

二、正则表达简单运用

(1)字符串替换

 

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         String source = new String("12hello34beijing56");
 5         //"[a-zA-Z]+" 匹配英文字母一次或多次
 6         source = source.replaceAll("[a-zA-Z]+", "你好");
 7         System.out.println(source);
 8     }
 9 
10 }

运行结果:字符串中英文字符被替换成“你好”

(2)字符串分解

 

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         String source = new String("who are you(Caven?)");
 5         /**
 6          * 以空格符、数字、和符号进行分割
 7          * 构造正则表达式
 8          */
 9         String regex = "[\\s\\d\\p{Punct}]+";
10         String[] words = source.split(regex);
11         for (int i = 0; i < words.length; i++) {
12             System.out.println(words[i]);            
13         }
14     }
15 
16 }

运行结果:单词被分割出来

 

posted @ 2017-12-17 14:06  我要吃冰棍  阅读(225)  评论(0编辑  收藏  举报