1
2
|
java.util.regex.Pattern
java.util.regex.Matcher
|
1.Match
match 是从字符串最头部开始匹配,一直到结束,需要匹配整个串
1
2
3
4
5
6
7
8
|
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
1
2
3
4
5
|
boolean b = matcher.find(); //包含正则匹配的串为true
// 找到所有匹配的串
while (matcher.find()) {
String extracted = matcher.group( 0 )
}
|
3.Replace
1
2
|
matcher.replaceFirst( "" )
matcher.replaceAll( "" );
|
4.Group
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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" );
}
|
总结
以上所述是小编给大家介绍的Java 正则表达式详细使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/wangyayun/archive/2017/10/19/7692143.html