正则表达式分割字符串,替换字符串内容

项目中用到字符串分割及替换功能,String中也有想用的分割替换方法,此处采用正则表达式来操作,顺便总结下正则字符的说明,仅做技术分享交流,如果您觉得能用到,证明小编时间没白费,如果您有意见或建议,请留言。

话不多说,进入正题

一、字符说明

    1、基础字符说明

x

字符x

\\

反斜杠"\"

\t

制表符('\u0009'

\n

换行符('\u000A'

\r

 回车符('\u000D'

[abc]

ab, 或者 c 

[^abc]

abc外的任意字符

[a-zA-Z]

字符azAZ中任意一个字符

[a-d[m-p]]

字符ad或者mp之间任意一个字符,等同于[a-dm-p]

[a-z&&[def]]

字符de或者f中的任意一个字符

[a-z&&[^bc]]

字符az中除了bc意外的任意一个字符, 等同于 [ad-z] 

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

字符az除了mp意外的任意一个字符,等同于 [a-lq-z]

    2、预定义字符说明

.

任意一个字符

\d

0-9中任意一个数字

\D

任意一个非数字字符

\s

任意一个空格字符[ \t\n\x0B\f\r]

\S

任意一个非空格字符[^\s]

\w

任意一个单词字符[a-zA-Z_0-9]

\W

任意一个非单词字符[^\w]

         3、边界匹配说明

^

一行的开始

$

一行的结束

\b

一个单词的边界

\B

非单词边界

         4、量词匹配说明

X?

字符X,匹配01

X*

字符X,匹配0或多次

X+

字符X,匹配1或多次

X{n}

字符X,匹配n

X{n,}

字符X,匹配至少n

X{n,m}

字符X,匹配至少n次,最多m

         5、逻辑运算说明

XY

X后的紧接着是Y

X|Y

X或者Y

(X)

X作为一个整体

注:使用特殊字符时,使用转义字符“\”,例如:如果要匹配”.” “\”则需写成“\.” “\\”;

二、使用正则表达式分割字符串及替换字符串内容

         1、使用正则表达式分割字符串:

                   示例代码:

                  

//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
String rex = "1";//分割符
String matchStr = "a1b1c1d1e";//要分割的对象
//获取属于rex正则的pattern对象。
Pattern pattern = Pattern.compile(rex);
//按照正则rex指定的规则分割字符串
String[] s = pattern.split(matchStr);

 

                   分割后的结果:


     
 

         2、正则表达式替换字符串中的字符:

                   示例代码:

                   

String rex = "(\\{\\})+";
String matchStr = "a{}b{}c{}d{}e";
//获取属于rex正则的pattern对象。
Pattern pattern = Pattern.compile(rex);
//创建rex正则用于匹配字符串的匹配器 -- 同一个pattern可以有多个不同的匹配器
Matcher matcher = pattern.matcher(matchStr);
//用-替换{}
while (matcher.find()) {
matchStr = matcher.replaceFirst("-");
    matcher = pattern.matcher(matchStr);
    System.out.println(matchStr);
}

 

                   输出结果:

                   

a-b{}c{}d{}e
a-b-c{}d{}e
a-b-c-d{}e
a-b-c-d-e

 

猜你喜欢

转载自lookahead.iteye.com/blog/2330411