การดำเนินการที่สามารถใช้นิพจน์ทั่วไปบน String ได้ใช้ประโยชน์จากฟังก์ชันของ java.util.regex.Pattern และ java.util.regex.Matcher เมื่อเรียกเมธอดmatchs() ของ String จริงๆ แล้วมันจะเรียกเมธอดคงที่ของ Patternmatchs() เมธอดนี้ส่งคืนค่าบูลีนที่ระบุว่าสตริงตรงกับนิพจน์ทั่วไปหรือไม่
หากคุณต้องการให้นิพจน์ทั่วไปเป็นวัตถุเพื่อนำมาใช้ซ้ำ คุณสามารถใช้เมธอด static ของ Pattern คอมไพล์() เพื่อคอมไพล์ได้ วิธีการ Compile() จะส่งคืนอินสแตนซ์ Pattern ซึ่งแสดงถึงนิพจน์ทั่วไป จากนั้นคุณสามารถใช้เมธอด Matcher() ของอินสแตนซ์ Pattern อีกครั้งเพื่อส่งคืนอินสแตนซ์ Matcher ซึ่งแสดงถึงอินสแตนซ์ที่ตรงกับนิพจน์ทั่วไป มีการค้นหาบางอย่าง ในกรณีนี้ วิธีการที่ตรงตามเงื่อนไขนิพจน์ทั่วไปจะพร้อมใช้งาน ตัวอย่าง 6.11 สาธิตสิ่งนี้
** ตัวอย่าง 6.11UsePatternMatcher.java
นำเข้า java.util.regex.*;
UsePatternMatcher ระดับสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
สตริงโฟน1 =
"เบอร์มือถือจัสติน: 0939-100391n" +
"เบอร์มือถือโมมอร์: 0939-666888n";
รูปแบบรูปแบบ = Pattern.compile(".*0939-\d{6}");
Matcher matcher = pattern.matcher(phones1);
ในขณะที่ (matcher.find ()) {
System.out.println(matcher.group());
-
โทรศัพท์สาย2 =
"เบอร์มือถือหนอนผีเสื้อ: 0952-600391n" +
"หมายเลขโทรศัพท์มือถือบุช: 0939-550391";
matcher = pattern.matcher (phones2);
ในขณะที่ (matcher.find ()) {
System.out.println(matcher.group());
-
-
-
ตัวอย่าง 6.11 จะค้นหาตัวเลขที่ขึ้นต้นด้วย 0939 สมมติว่าตัวเลขมาจากแหล่งที่มามากกว่าหนึ่งแหล่ง (เช่น โทรศัพท์ 1, โทรศัพท์ 2) คุณสามารถคอมไพล์นิพจน์ทั่วไปและส่งคืนออบเจ็กต์ Pattern จากนั้นคุณจึงนำออบเจ็กต์ Pattern นี้กลับมาใช้ใหม่ได้ในระหว่างการเปรียบเทียบ ใช้ matcher() เพื่อส่งคืนอินสแตนซ์ Matcher ที่ตรงกัน เมธอด find() ระบุว่ามีสตริงที่ตรงกันหรือไม่ และเมธอด group() สามารถส่งคืนสตริงที่ตรงกันได้ ผลลัพธ์การทำงานของโปรแกรมมีดังนี้:
เบอร์มือถือจัสติน: 0939-100391
เบอร์มือถือโมมอร์: 0939-666888
หมายเลขโทรศัพท์มือถือของบุช: 0939-550391
มาเขียนตัวอย่าง 6.9 ใหม่โดยใช้ Pattern และ Matcher เพื่อให้โปรแกรมสามารถส่งคืนสตริงที่ตรงกับนิพจน์ทั่วไป แทนที่จะส่งคืนสตริงที่ไม่ตรงกัน
** ตัวอย่าง 6.12RegularExpressionDemo2.java
นำเข้า java.util.regex.*;
RegularExpressionDemo2 ระดับสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
ข้อความสตริง = "abcdebcadxbc";
รูปแบบรูปแบบ = Pattern.compile(".bc");
Matcher matcher = pattern.matcher(ข้อความ);
ในขณะที่ (matcher.find ()) {
System.out.println(matcher.group());
-
System.out.println();
-
-
style='font-family:宋体'>ผลการดำเนินการ:
เอบีซี
เอบีซี
เอ็กซ์บีซี
บทความนี้มาจากบล็อก CSDN โปรดระบุแหล่งที่มาเมื่อพิมพ์ซ้ำ: http://blog.csdn.net/wofe912/archive/2009/12/18/5030571.aspx