java正则表达式

创建步骤:
1.创建一个Pattern,Pattern p = Pattern.compile(String regex);
2.创建Matcher,Matcher m = p.matcher(String str);
3.匹配。

Matcher对于匹配有3中,matches(),find(),LookingAt()。
matches()要全部匹配才能返回true,LookingAt()从第一个开始,匹配上就可以,不必完全匹配。find()则是只要字串有匹配的就可以,返回true。
pattern中有split(String str)方法对字符串进行分割。还有一些功能在api中能找到。
示例:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegexTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String emailReg = "[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-z]+";
		String emailMatches = "[email protected]";
		String emailLookingAt = "[email protected]";
		String emailFind = "\\[email protected]";
		System.out.println(createMatcher(emailMatches, emailReg).matches());
		System.out.println(createMatcher(emailLookingAt, emailReg).matches());
		System.out.println(createMatcher(emailFind, emailReg).matches());
		System.out.println(createMatcher(emailMatches, emailReg).lookingAt());
		System.out.println(createMatcher(emailLookingAt, emailReg).lookingAt());
		System.out.println(createMatcher(emailFind, emailReg).lookingAt());
		System.out.println(createMatcher(emailMatches, emailReg).find());
		System.out.println(createMatcher(emailLookingAt, emailReg).find());
		System.out.println(createMatcher(emailFind, emailReg).find());
		
		System.out.println(createMatcher("13812345678", "^[1][35]{1}\\d{9}").matches());
		System.out.println(createMatcher("012345678912345", "\\d{15}").matches());
		
		//spilt the string to string[] by ","
		Pattern pattern = Pattern.compile(",");
		String[] strs = pattern.split("good,bad,fuck");
		for(String str : strs) {
			System.out.println(str);
		}
		
	}
	
	private static Matcher createMatcher(String str, String reg) {
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher = pattern.matcher(str);
		return matcher;
	}
}

输出:
true
false
false
true
true
false
true
true
true
true
true
good
bad
fuck

如果表述不够清晰,可以结合运行结果自行分析。

你可能感兴趣的:(java,正则表达式,Pattern,regex,Matcher)