1. 程式人生 > >Java正則表示式pattern和matches

Java正則表示式pattern和matches

package com.lks.regex;

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

/**
 * 
 * @author lks
 * @time 2016年6月6日下午11:02:05
 */
public class PatternDemo1 {
	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String regex = "0792-\\d{7}";
		String content = "aaa0792-2133213fadsad0792-23433213";
		new PatternDemo1().test1(regex, content);

	}

	public void pattern1(String regex) {
		Pattern pattern = Pattern.compile(regex);
		// 返回在其中編譯過此模式的正則表示式
		String p = pattern.pattern();
		System.out.println(p + " " + pattern.flags());
	}

	public void splict(String regex, String content) {
		// 以abc作為分隔符,abc不顯示
		String[] sps = content.split(regex);
		for (String spc : sps) {
			System.out.println(spc);
		}
	}

	public void splict1(String regex, String content) {
		// 不區分大小寫
		Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
		// 檢視內容中的是否匹配
		String[] str = p.split(content);
		System.out.println(p.flags());
		for (String string : str) {
			System.out.println(string);
		}
	}

	public void matcher1(String regex, String content) {
		// 不區分大小寫
		Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
		// 獲取一個Matcher的物件
		Matcher m = p.matcher(content);
		// 查詢符合的字串,如果匹配成功,則可以通過 start、end 和 group 方法獲取更多資訊。
		while (m.find()) {
			// 發現匹配的字元陣列,輸出ac,Ac,AC,aC
			System.out.println(m.group());
			// 輸出字串下標(開始)
			System.out.println(m.start());
			// 輸出字串下標(結束)
			System.out.println(m.end());
		}
		// 忽略大小寫
		System.out.println("Java".matches("(?i)(java)"));
	}

	// 電話號碼匹配
	public void test1(String regex, String content) {
		Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);

		Matcher m = p.matcher(content);
		// 當發現匹配的
		while (m.find()) {
			System.out.println(m.group());
		}
	}

}