JAVA正则表达式

1符号

预定义字符类

.       任何字符

\d      数字:[0-9]

\D      非数字: [^0-9]

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

\S      非空白字符:[^\s]

\w      单词字符:[a-zA-Z0-9_]

\W      非单词字符:[^\w]     

 

Greedy 数量词(++为正无穷大)

X?    X,[0,1]

X*    X,[0,++]

X+    X,[1,++]

X{n}  X,n

X{n,}  X,[n,++)

X{n,m} X,[n,m]

 

范围表示

[abc] a、b或c(简单类)

[^abc]任何字符,除了a、b或c(否定)

[a-zA-Z]a到z或A到Z,两头的字母包括在内(范围)

 

2匹配

.matches()

 

例:

regex_qqnumber = [1-9][0-9]{5,10}

regex_email = [a-zA-Z1-9]\\w*@[a-zA-Z1-9]\\w*(\\.(com|cn|net))+


3切割

.split(regex)

 

4替换

.replaceAll(regex,str)

 

例:

str = "aaddddfgeeeeqttt";

newstr = str.repalceAll("(.)\\1+","$1");         //$1表示第一个(.)所匹配的字符

System.out.println(newstr);

 

5获取

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaab");

boolean b = m.matches();

 

.find()

.group()


例:

需求:获取由3个字母组成的单词。

String str = "da jia zhu yi le,ming tian bu fang jia,xie xie!";
String regex = "\\b[a-z]{3}\\b"; // \\b匹配单词边界,即单词和符号之间的边界。单词可以是中文字符,英文字符,数字;符号可以是中文符号,英文符号,空格,制表符,换行

Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println(m.group());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值