Java 正则表达式

Java 正则表达式

java.util.regex.Pattern
java.util.regex.Matcher

Match

match 是从字符串最头部开始匹配,一直到结束,需要匹配整个串

String content = "Welcome, bob!";
content.match("bob");    //false
content.match(".*bob")   //false
content.match(".*bob.*") //true


String str="test@yahoo.com.cn";
Pattern pattern = Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
boolean a = matcher.matches(); //匹配的时候返回true

Find

boolean b = matcher.find(); //包含正则匹配的串为true
// 找到所有匹配的串
while(matcher.find()) {
    String extracted = matcher.group(0)
}

Replace

matcher.replaceFirst("")
matcher.replaceAll("");

Group

group(0) 代表整个表达式

String line = "#星座运势#20171013";
String pattern = "\\#(\\p{L}*)\\#(\\d+)";  //\p{L}  匹配 unicode any kind of letter from any language
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
 
// 现在创建 matcher 对象
Matcher m = r.matcher(line);

if (m.find( )) {
   System.out.println("Found value: " + m.group(0) );    // "#星座运势#20171013"
   System.out.println("Found value: " + m.group(1) );    // 星座运势
   System.out.println("Found value: " + m.group(2) );    // 20171013
} else {
   System.out.println("NO MATCH");
}

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值