Java 正则表达式
java.util.regex.Pattern
java.util.regex.Matcher
1.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
2.Find
boolean b = matcher.find(); //包含正则匹配的串为true
// 找到所有匹配的串
while(matcher.find()) {
String extracted = matcher.group(0)
}
3.Replace
matcher.replaceFirst("")
matcher.replaceAll("");
4.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");
}