Java正則表示式pattern和matches
阿新 • • 發佈:2019-01-03
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()); } } }