บทช่วยสอน การแสดงออกปกติ Java ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ กลุ่มการบันทึก,ตัวอย่าง,ไวยากรณ์แสดงออกปกติ,วิธีการเรียน Matcher,วิธีการที่ดัชนี,ระเบียบวิธีวิจัย,วิธีการเปลี่ยน,วิธีการเริ่มต้นและสิ้นสุด,การแข่งขันและวิธีการ lookingAt,วิธีการ replaceFirst และ replaceAll,วิธีการ appendReplacement และ appendTail,วิธีการเรียน PatternSyntaxException,
แสดงออกปกติกำหนดสตริงรูปแบบ
การแสดงออกปกติสามารถใช้ในการค้นหาแก้ไขหรือข้อความในการประมวลผล
การแสดงออกปกติไม่ จำกัด ภาษาบางอย่าง แต่มีความแตกต่างที่ลึกซึ้งในแต่ละภาษา
นิพจน์ทั่วไปของ Java และ Perl เป็นคล้ายกันมากที่สุด
แพคเกจ java.util.regex รวมถึงต่อไปสามประเภท:
รูปแบบวัตถุเป็นตัวแทนการแสดงออกของคอมไพเลอร์ปกติ ระดับแบบไม่เคยมีใครสร้างสาธารณะ การสร้างวัตถุรูปแบบที่คุณต้องเรียกวิธีการรวบรวมของสาธารณะคงที่ส่งกลับวัตถุรูปแบบ วิธีนี้ใช้เวลาการแสดงออกปกติเป็นอาร์กิวเมนต์แรกของ
วัตถุ Matcher คือความหมายของสายป้อนและการดำเนินงานที่ตรงกับของเครื่องยนต์ เช่น class แบบที่ไม่เคยมีใคร Matcher สร้างสาธารณะ คุณจะต้องเรียกวัตถุวิธีการรูปแบบการจับคู่ที่จะได้รับวัตถุ Matcher
PatternSyntaxException เป็นชั้นยกเว้นไม่ได้รับคำสั่งที่แสดงถึงข้อผิดพลาดของไวยากรณ์รูปแบบการแสดงออกปกติ
กลุ่มการจับตัวละครหลายเมื่อมีวิธีการรักษาที่หน่วยเดียวผ่านตัวละครที่จัดกลุ่มในวงเล็บในการสร้าง
ยกตัวอย่างเช่นการแสดงออกปกติ (สุนัข) สร้างกลุ่มเดียวกลุ่มที่มี "D", "O" และ "G"
กลุ่มจับภาพโดยการคำนวณวงเล็บเปิดเลขจากซ้ายไปขวา ยกตัวอย่างเช่นในการแสดงออก ((A) (B (C))) มีสี่กลุ่มดังกล่าว:
โดยการเรียกวิธีการจับคู่วัตถุ groupCount ที่จะเห็นการแสดงออกของแพ็คเก็ตหลายวิธี วิธี groupCount กลับ int เป็นตัวแทนของวัตถุที่จับคู่ในปัจจุบันมีกลุ่มจับหลาย
มีกลุ่มพิเศษ (กลุ่ม 0) ก็มักจะหมายถึงการแสดงออกทั้งหมด กลุ่มที่ไม่รวมอยู่ในค่าตอบแทน groupCount
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการหาสตริงของตัวเลขจากสตริงได้รับ:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main( String args[] ){ // 按指定模式在字符串查找 String line = "This order was placed for QT3000! OK?"; String pattern = "(.*)(\\d+)(.*)"; // 创建 Pattern 对象 Pattern r = Pattern.compile(pattern); // 现在创建 matcher 对象 Matcher m = r.matcher(line); if (m.find( )) { System.out.println("Found value: " + m.group(0) ); System.out.println("Found value: " + m.group(1) ); System.out.println("Found value: " + m.group(2) ); } else { System.out.println("NO MATCH"); } } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT300 Found value: 0
ตัวละคร | คำอธิบาย |
---|---|
\ | ตัวละครต่อไปคือการทำเครื่องหมายเป็นตัวอักษรพิเศษ, ข้อความ, กลับอ้างอิงหรือฐานแปดหลบหนี ยกตัวอย่างเช่น "n" ตรงกับตัวอักษร "N" "\ n" ตรงกับตัวอักษรขึ้นบรรทัดใหม่ ลำดับ "\\" การแข่งขัน "\", "\ (" การแข่งขัน "(". |
^ | ตรงกับสายป้อนเริ่มต้น ถ้าคุณตั้งค่าตำแหน่งวัตถุจับคู่Multiline คุณสมบัตินิพจน์ทั่วไปและยัง^ "\ n" หรือ "\ r" หลังจากที่ |
$ | ตรงปลายใส่ของตำแหน่งสตริงหากวัตถุนิพจน์ทั่วไปของโรงแรม Multiline,$ ยังตรงกับ "\ n" หรือ "\ r" ตำแหน่งก่อน |
* * * * | ศูนย์หรือตรงกับครั้งก่อนหน้านี้ตัวละครย่อยหรือการแสดงออก ยกตัวอย่างเช่น ZO * ตรงกับ "Z" และ "สวนสัตว์" * เทียบเท่า {0} |
+ | หนึ่งครั้งหรือมากกว่าตรงกับก่อนหน้านี้ตัวละครย่อยหรือการแสดงออก ยกตัวอย่างเช่น "ZO +" และ "โซ" และ "สวน" การแข่งขัน แต่ "Z" ไม่ตรงกับ + เทียบเท่ากับ {1} |
? | ศูนย์หรือหนึ่งตรงกับก่อนหน้านี้ตัวละครย่อยหรือการแสดงออก ยกตัวอย่างเช่น "ทำ (ES)?" ตรงกับ "ทำ" หรือ "ไม่" ใน "ทำ" ? เทียบเท่ากับ {0,1} |
{N} | nจำนวนเต็มไม่เป็นลบ ตรงกับnครั้ง ยกตัวอย่างเช่น "o {2}" และ "บ๊อบ" ใน "O" ไม่ตรง แต่ "อาหาร" ของทั้งสอง "O" การแข่งขัน |
{n} | nจำนวนเต็มไม่เป็นลบ การแข่งขันในเวลาที่น้อยnยกตัวอย่างเช่น "o {2}" ไม่ตรงกับ "บ๊อบ" ใน "O" และการแข่งขัน "foooood" ยี่ห้อ O "o {1}" เทียบเท่ากับ "o +" "o {0}" เทียบเท่ากับ "o *" |
{n,m} | Mและจำนวนเต็มn ไม่ใช่เชิงลบที่n <= m การแข่งขันอย่างน้อยn และที่มากที่สุดครั้งเมตรยกตัวอย่างเช่น "o {1,3}" การแข่งขัน "fooooood" ในครั้งแรกสาม o 'O {0,1}' เท่ากับ 'O' หมายเหตุ: คุณไม่สามารถแทรกช่องว่างระหว่างเครื่องหมายจุลภาคและตัวเลข |
? | เมื่อตัวอักษรที่ใช้ในรอบคัดเลือกอื่น ๆ (* +? { {n,}, {N, N m}}) ต่อมาจับคู่รูปแบบคือ "ไม่โลภ." "ไม่โลภ" รูปแบบการจับคู่เพื่อค้นหาสตริงสั้นที่เป็นไปได้และเริ่มต้น "โลภ" รูปแบบการจับคู่เพื่อค้นหาสายยาวที่เป็นไปได้ ยกตัวอย่างเช่นในสตริง "oooo" ใน "o +?" แมตช์เพียงคนเดียว "O" และ "o +" ตรงกับทุก "O" |
. | ตรงกับตัวอักษรตัวเดียวใด ๆ ยกเว้น "\ r \ n" คือ เพื่อให้ตรงกับรวมถึง "\ r \ n" รวมทั้งตัวอักษรใด ๆ เช่นรูปแบบการใช้งาน "[\ S \ s]" หรือชอบ |
(รูปแบบ) | จับคู่รูปแบบและการจับsubexpression ของการแข่งขัน คุณสามารถใช้คุณสมบัติที่$ 0 th. $ 9 ตรงกับผลที่ได้จาก "ตรงกับ" คอลเลกชันที่จะดึงจับเพื่อให้ตรงกับตัวอักษรวงเล็บ () ให้ใช้ "\ (" หรือ "\)." |
(:รูปแบบ) | จับคู่รูปแบบแต่ไม่ได้จับ subexpression การแข่งขันว่ามันเป็นคู่ที่ไม่ใช่การจับภาพการจับคู่ไม่ได้เก็บไว้เพื่อใช้ในภายหลัง นี้สำหรับใช้ "หรือ" ตัวอักษร (|) เมื่อส่วนประกอบรวมกันโหมดที่มีประโยชน์ ตัวอย่างเช่น 'industr (? Y | IES) คืออัตราส่วนของ' อุตสาหกรรม | แสดงออกประหยัดมากขึ้นอุตสาหกรรม |
(?= รูปแบบ) | การแสดงไปข้างหน้าทำนาย subexpressionค้นหาแรกรูปแบบการจับคู่สายสตริงที่จุดเริ่มต้นของการจับคู่การแสดงออกมันเป็นคู่ที่ไม่ใช่การจับภาพที่ไม่ได้จับภาพการแข่งขันเพื่อใช้ในภายหลัง ตัวอย่างเช่น 'Windows (= 95? | 98 | NT | 2000)' การจับคู่ "Windows 2000" "Windows" แต่ไม่ตรงกับ "Windows 3.1" ใน "Windows" Lookahead ไม่ใช้ตัวอักษรคือหลังจากที่การแข่งขันเกิดขึ้นการแข่งขันต่อไปสำหรับการค้นหาของคุณทันทีหลังจากที่การแข่งขันที่ผ่านมาไม่ได้หลังจากการคาดการณ์ครั้งแรกในองค์ประกอบของตัวละคร |
(?!รูปแบบ) | Lookahead subexpressionดำเนินการค้นหาย้อนกลับแสดงออกไม่ตรงกับรูปแบบการจับคู่สายในจุดเริ่มต้นของสตริงการค้นหามันเป็นคู่ที่ไม่ใช่การจับภาพที่ไม่ได้จับภาพการแข่งขันเพื่อใช้ในภายหลัง ตัวอย่างเช่น 'Windows (95 | 98 ?! | NT | 2000)' ตรงกับ "Windows 3.1" ใน "Windows" แต่ไม่ตรงกับ "Windows 2000" "Windows" Lookahead ไม่ใช้ตัวอักษรคือหลังจากที่การแข่งขันเกิดขึ้นการแข่งขันต่อไปสำหรับการค้นหาของคุณทันทีหลังจากที่การแข่งขันที่ผ่านมาไม่ได้หลังจากการคาดการณ์ครั้งแรกในองค์ประกอบของตัวละคร |
xy| | การแข่งขันXหรือYตัวอย่างเช่น 'Z | อาหาร' ตรงกับ "Z" หรือ "อาหาร" '(Z | F) อู๊ด' จับคู่ "zood" หรือ "อาหาร" |
[Xyz] | ชุดอักขระ ตรงกับตัวอักษรใด ๆ รวม ยกตัวอย่างเช่น "[ABC]" การแข่งขัน "ธรรมดา" ใน "A" |
[^Xyz] | ชุดตัวอักษรย้อนกลับ ตรงกับตัวอักษรใด ๆ ไม่รวม ยกตัวอย่างเช่น "[^ abc]" ตรงกับ "ธรรมดา" ใน "P", "L", "ฉัน", "n" |
[Az] | ช่วงของตัวอักษร ตรงกับตัวอักษรใด ๆ ในช่วงที่ระบุ ยกตัวอย่างเช่น "[az]" การแข่งขัน "A" ตัวอักษรตัวพิมพ์เล็กใด ๆ ใน "Z" ช่วง |
[^Az] | ช่วงหลังของตัวละคร ตรงกับตัวอักษรใด ๆ ไม่ได้อยู่ในช่วงที่ระบุ ยกตัวอย่างเช่น "[^ az]" ตรงกับใด ๆ ที่ไม่ "A" ใด ๆ ของตัวละครใน "Z" ช่วง |
\ B | ตรงกับขอบเขตของคำว่าเป็นตำแหน่งของคำและช่องว่างระหว่าง ยกตัวอย่างเช่น "เอ้อ \ B" ตรงกับ "ไม่เคย" ใน "ER" แต่ไม่ตรงกับ "คำกริยา" ใน "ER" |
\ B | ตรงกับเขตแดนไม่ใช่คำ "เอ่อ \ B" ตรงกับ "คำกริยา" ใน "ER" แต่ไม่ตรงกับ "ไม่เคย" ใน "ER" |
\C X | ควบคุมตัวละครตรงกับที่ระบุโดยxยกตัวอย่างเช่น \ cM ตรงกับการควบคุม-M หรือกลับรถค่าของ xจะต้องอยู่ระหว่าง AZ หรือ az ถ้าไม่ได้ก็จะสันนิษฐานว่า c คือ "C" ตัวละครของตัวเอง |
\ D | ที่ตรงกับตัวละครที่เป็นตัวเลข เทียบเท่ากับ [0-9] |
\ D | ตรงกับอักขระที่ไม่ใช่ตัวเลข มันจะเทียบเท่ากับ [^ 0-9] |
\ F | การแข่งขัน Formfeed เทียบเท่ากับ \ x0c และ \ cL |
\ n | ตรงกับขึ้นบรรทัดใหม่ เทียบเท่ากับ \ X0A และ \ CJ |
\ r | ตรงกับที่กลับรถ เทียบเท่ากับ \ x0d และ \ cM |
\ S | ตรงกับตัวอักษรช่องว่างใด ๆ รวมถึงช่องว่างแท็บแบ่งหน้า ฯลฯ เทียบเท่ากับ [\ F \ n \ r \ t \ V] |
\ S | ตรงกับตัวละครที่ไม่ใช่ช่องว่าง เทียบเท่ากับ [^ \ F \ n \ r \ t \ V] |
\ t | แท็บการแข่งขัน และ \ x09 และ \ CI เทียบเท่า |
\ V | ตรงกับอักขระแท็บแนวตั้ง และ \ x0b และ \ เทียบเท่า cK |
\ W | ตรงกับตัวละครตัวละครระดับรวมทั้งขีด และ "[a-ZA-z0-9_]" เทียบเท่า |
\ W | ตรงกับตัวละครที่ไม่ใช่คำใด ๆ และ "[^ A-ZA-z0-9_]" เทียบเท่า |
\n X | MatchN,N นี่เป็นรหัสเลขฐานสิบหกหลบหนี รหัสเลขฐานสิบหกหลบหนีต้องเป็นตัวเลขสองหลักยาว ยกตัวอย่างเช่น "\ X41" จับคู่ "A" "\ X041" และ "\ x04" และ "1" จะเทียบเท่า ช่วยให้การใช้การแสดงออกปกติรหัสแอสกี |
\Num | MatchNUM,NUM นี่เป็นจำนวนเต็มบวก ในการจับภาพ backreferences จับคู่ ยกตัวอย่างเช่น "(.) \ 1" ตรงกับตัวละครทั้งสองเหมือนกันติดต่อกัน |
\n | ระบุรหัสหลบหนีฐานแปดหรือกลับอ้างอิง หาก \nนำโดย subexpressions จับอย่างน้อยnแล้วnเป็น backreference มิฉะนั้นถ้าnเป็นตัวเลขฐานแปด (0-7) แล้วnเป็นรหัสหนีฐานแปด |
\นิวตันเมตร | ระบุรหัสหลบหนีฐานแปดหรือกลับอ้างอิง หาก \นาโนเมตรในด้านหน้าของsubexpressionจับอย่างน้อยนาโนเมตรแล้วนาโนเมตรเป็นbackreference หาก \นาโนเมตรอย่างน้อยในหน้าของการจับภาพN,Nเป็น backreference ตามด้วยตัวอักษรMหากทั้งสองกรณีที่ก่อนหน้านี้ไม่ได้อยู่\นาโนเมตรตรงกับนาโนเมตรค่าฐานแปดที่nและmเป็นตัวเลขฐานแปด (0-7) |
\ NML | เมื่อnคือตัวเลขฐานแปด(0-3),M และLมีฐานแปด (0-7) มันตรงกับรหัสหนีฐานแปดNML |
\n U | ตรงกันn โดยที่n คืออักขระ Unicode ตัวแทนจากสี่เลขฐานสิบหก ยกตัวอย่างเช่น \ u00A9 ตรงกับสัญลักษณ์ลิขสิทธิ์ (©) |
วิธีการให้ดัชนีมีค่าดัชนีบ่งชี้ได้อย่างแม่นยำที่มีประโยชน์ที่จะหาตรงกับสายการป้อนข้อมูล:
เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | เริ่มต้น int สาธารณะ () ส่งกลับค่าดัชนีเริ่มต้นของการแข่งขันที่ผ่านมา |
2 | เริ่มต้น int สาธารณะ (กลุ่ม int) ย้อนกลับไปในการดำเนินงานในระหว่างการแข่งขันก่อนหน้านี้ถูกจับโดยกลุ่มที่ได้รับการย่อยลำดับดัชนีเริ่มต้น |
3 | สาธารณะท้าย int () ผลตอบแทนชดเชยหลังจากที่ตัวอักษรตัวสุดท้ายจับคู่ |
4 | ท้าย int สาธารณะ (กลุ่ม int) ย้อนกลับไปในการดำเนินงานในระหว่างการแข่งขันที่ผ่านมาโดยได้รับการชดเชยหลังจากที่กลุ่มสุดท้ายของตัวละครหลังจากที่ลำดับของการจับภาพ |
วิธีการที่ใช้ในการตรวจสอบสายเข้าและส่งกลับค่าบูลีนแสดงให้เห็นหรือไม่ว่ารูปแบบที่พบ:
เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | lookingAt ประชาชน boolean () ลองพื้นที่จากจุดเริ่มต้นของการเริ่มต้นของลำดับการป้อนข้อมูลที่ตรงกับรูปแบบ |
2 | ประชาชนบูลีนหา () พยายามที่จะหาลำดับการป้อนข้อมูลที่ตรงกับรูปแบบของลำดับถัดไป |
3 | ประชาชน boolean หา (เริ่มต้น int) รีเซ็ตการจับคู่นี้และแล้วความพยายามที่จะหาคู่สำหรับรูปแบบป้อนย่อยลำดับถัดไปเริ่มต้นจากดัชนีที่ระบุ |
4 | แมตช์บูลีนสาธารณะ () ลองทั้งภูมิภาคและการจับคู่รูปแบบ |
ทางเลือกคือการแทนที่สตริงในวิธีการป้อนข้อความ:
เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | ประชาชน Matcher appendReplacement (StringBuffer SB, String ทดแทน) เพื่อให้บรรลุไม่ใช่ขั้วเพิ่มและขั้นตอนการแทน |
2 | ประชาชน StringBuffer appendTail (StringBuffer SB) บรรลุการเพิ่มและการแทนขั้วขั้นตอน |
3 | String สาธารณะ replaceAll (String ทดแทน) เปลี่ยนโหมดกับสตริงทดแทนที่กำหนดให้ตรงกับลำดับการป้อนข้อมูลสำหรับแต่ละลำดับ |
4 | String สาธารณะ replaceFirst (String ทดแทน) เปลี่ยนโหมดกับสตริงทดแทนที่ได้รับการจับคู่การป้อนข้อมูลลำดับแรกย่อยลำดับ |
5 | สาธารณะคง String quoteReplacement (String s) ส่งกลับสตริงทดแทนที่แท้จริง วิธีการนี้จะส่งกลับสตริงที่ถูกส่งผ่านเป็นวิธีการในการทำงานระดับ appendReplacement Matcher เป็นสตริงตัวอักษรที่ |
นี่คือตัวอย่างของจำนวนของการเกิดขึ้นในสายป้อนสำหรับการนับคำว่า "แมว" ปรากฏนี้:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static final String REGEX = "\\bcat\\b"; private static final String INPUT = "cat cat cat cattie cat"; public static void main( String args[] ){ Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); // 获取 matcher 对象 int count = 0; while(m.find()) { count++; System.out.println("Match number "+count); System.out.println("start(): "+m.start()); System.out.println("end(): "+m.end()); } } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
Match number 1 start(): 0 end(): 3 Match number 2 start(): 4 end(): 7 Match number 3 start(): 8 end(): 11 Match number 4 start(): 19 end(): 22
นี้สามารถเห็นได้โดยใช้ขอบเขตตัวอย่างเช่นคำว่าเพื่อให้แน่ใจว่าตัวอักษร "C" "A" T "" ไม่ได้เป็นเพียงคำสตริงยาว นอกจากนี้ยังมีบางตำแหน่งข้อมูลที่เป็นประโยชน์เกี่ยวกับสายป้อนจะถูกจับคู่
วิธีการเริ่มต้นผลตอบแทนที่ได้ดำเนินการในระหว่างการแข่งขันก่อนหน้านี้จากเริ่มต้นดัชนีที่กำหนดกลุ่มจับ subsequence จบวิธีการจับคู่สุดท้ายดัชนีบวกตัวละครหนึ่ง
การแข่งขันและวิธีการ lookingAt จะใช้ในการพยายามให้ตรงกับลำดับของรูปแบบการป้อนข้อมูล พวกเขามีความแตกต่างจากความต้องการของการจับคู่จับคู่ลำดับทั้งหมด แต่ lookingAt ไม่จำเป็นต้องใช้
ทั้งสองวิธีมักจะใช้ในสายป้อนเริ่มต้น
ผ่านตัวอย่างต่อไปนี้จะอธิบายคุณลักษณะนี้:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static final String REGEX = "foo"; private static final String INPUT = "fooooooooooooooooo"; private static Pattern pattern; private static Matcher matcher; public static void main( String args[] ){ pattern = Pattern.compile(REGEX); matcher = pattern.matcher(INPUT); System.out.println("Current REGEX is: "+REGEX); System.out.println("Current INPUT is: "+INPUT); System.out.println("lookingAt(): "+matcher.lookingAt()); System.out.println("matches(): "+matcher.matches()); } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
Current REGEX is: foo Current INPUT is: fooooooooooooooooo lookingAt(): true matches(): false
replaceFirst และวิธี replaceAll ใช้ในการแทนที่ข้อความที่ตรงกับการแสดงออกปกติ ความแตกต่างคือ replaceFirst แทนที่นัดแรก replaceAll แทนที่การแข่งขันทั้งหมด
ตัวอย่างต่อไปนี้จะอธิบายคุณลักษณะนี้:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static String REGEX = "dog"; private static String INPUT = "The dog says meow. " + "All dogs say meow."; private static String REPLACE = "cat"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); // get a matcher object Matcher m = p.matcher(INPUT); INPUT = m.replaceAll(REPLACE); System.out.println(INPUT); } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
The cat says meow. All cats say meow.
ระดับ Matcher นอกจากนี้ยังมีวิธีการสำหรับการ appendTail appendReplacement และแทนที่ข้อความ:
ดูตัวอย่างต่อไปนี้จะอธิบายคุณลักษณะนี้:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { private static String REGEX = "a*b"; private static String INPUT = "aabfooaabfooabfoob"; private static String REPLACE = "-"; public static void main(String[] args) { Pattern p = Pattern.compile(REGEX); // 获取 matcher 对象 Matcher m = p.matcher(INPUT); StringBuffer sb = new StringBuffer(); while(m.find()){ m.appendReplacement(sb,REPLACE); } m.appendTail(sb); System.out.println(sb.toString()); } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
-foo-foo-foo-
PatternSyntaxException เป็นชั้นยกเว้นไม่ได้รับคำสั่งซึ่งบ่งชี้ข้อผิดพลาดไวยากรณ์รูปแบบการแสดงออกปกติ
ระดับ PatternSyntaxException มีวิธีการดังต่อไปนี้เพื่อช่วยให้เรามองเห็นสิ่งที่เกิดข้อผิดพลาด
เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | String สาธารณะ getDescription () ได้รับรายละเอียดของข้อผิดพลาด |
2 | int สาธารณะ getIndex () รับดัชนีที่ไม่ถูกต้อง |
3 | String สาธารณะ getPattern () ได้รับรูปแบบการแสดงออกที่ผิดพลาดเป็นประจำ |
4 | String สาธารณะ getMessage () ส่งกลับสตริงหลายคู่สายที่มีรายละเอียดของข้อผิดพลาดทางไวยากรณ์และดัชนีบ่งชี้ภาพที่ผิดพลาดของรูปแบบการแสดงออกปกติและดัชนีข้อผิดพลาด |