Matcher
類對(duì)字符序列執(zhí)行匹配通過(guò)解釋在 Pattern
對(duì)象中定義的編譯模式。
Pattern
類的 matcher()
方法創(chuàng)建一個(gè)實(shí)例的 Matcher
類。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String regex = "[a-z]@."; Pattern p = Pattern.compile(regex); String str = "abc@yahoo.com,123@cnn.com,abc@google.com"; Matcher m = p.matcher(str); } }
匹配器的以下方法執(zhí)行匹配。
find()
方法找到輸入中的模式的匹配。
如果find成功,它返回true。否則,它返回false。
第一次調(diào)用 find()
在輸入的開始處開始搜索。下一個(gè)調(diào)用將在上一次匹配后開始搜索。
我們可以使用while循環(huán)與 find()
方法來(lái)查找所有的匹配。
find()
方法是一個(gè)重載的方法。find()方法的另一個(gè)版本接受一個(gè)整數(shù)參數(shù),這是開始查找匹配的偏移量。
find()
方法返回上一次匹配的開始索引。 它在成功的find()方法調(diào)用之后使用。
end()
方法返回匹配字符串中最后一個(gè)字符的索引加一。
匹配后, str.substring(m.start(),m.end())
給出匹配的字符串。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String regex = "[a-z]@."; Pattern p = Pattern.compile(regex); String str = "abc@yahoo.com,123@cnn.com,abc@google.com"; Matcher m = p.matcher(str); if (m.find()) { String foundStr = str.substring(m.start(), m.end()); System.out.println("Found string is:" + foundStr); } } }
上面的代碼生成以下結(jié)果。
group()方法通過(guò)前一個(gè)成功的find()方法調(diào)用返回找到的字符串。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String regex = "[a-z]@."; Pattern p = Pattern.compile(regex); String str = "abc@yahoo.com,123@cnn.com,abc@google.com"; Matcher m = p.matcher(str); if (m.find()) { String foundStr = m.group(); System.out.println("Found text is:" + foundStr); } } }
上面的代碼生成以下結(jié)果。
import java.util.regex.Pattern; import java.util.regex.Matcher; public class Main { public static void main(String[] args) { String regex = "[abc]@."; String source = "abc@example.com"; findPattern(regex, source); } public static void findPattern(String regex, String source) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(source); System.out.println("Regex:" + regex); System.out.println("Text:" + source); while (m.find()) { System.out.println("Matched Text:" + m.group() + ", Start:" + m.start() + ", " + "End:" + m.end()); } } }
上面的代碼生成以下結(jié)果。
更多建議: