java正则表达

mac2022-07-05  13

一、正则表达式

  一个正则表达式是含有一些具有特殊意义字符的字符串,这些字符称作正则表达式中的元字符。例如“\\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 }

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

 

转载于:https://www.cnblogs.com/Popsicle/p/8051831.html

最新回复(0)