ในระหว่างกระบวนการเขียนโปรแกรมคุณมักจะต้องตรวจสอบรูปแบบข้อมูลอินพุต เพื่อตรวจสอบว่าข้อมูลอินพุตตรงกับรูปแบบที่แน่นอนคุณสามารถใช้วิธีการจับคู่ () ของคลาสสตริงเพื่อตัดสินรูปแบบไวยากรณ์มีดังนี้:
การจับคู่บูลีน (String regex)
Regex: ระบุนิพจน์ทั่วไป
ค่าส่งคืน: ประเภทบูลีนหลัง
วิธีนี้ใช้เพื่อแจ้งว่าสตริงปัจจุบันตรงกับนิพจน์ทั่วไปที่ระบุโดยพารามิเตอร์ regex หรือไม่
การแสดงออกปกติเป็นสตริงที่ประกอบด้วยตัวละครที่มีความหมายพิเศษ สำหรับการแปล
.: แสดงถึงตัวละครใด ๆ
/d: แสดงจำนวน 0-9
/D: แสดงถึงอักขระที่ไม่ใช่ digital
/s: แสดงถึงอักขระที่ว่างเปล่า
/s: แสดงถึงอักขระที่ไม่ใช่ช่องว่าง
/W: มันหมายถึงอักขระที่สามารถใช้เป็นตัวระบุ แต่ไม่รวม "$"
/W: มันหมายถึงอักขระที่ไม่สามารถใช้เป็นตัวระบุได้
/p {ล่าง}: แสดงถึงตัวอักษรตัวพิมพ์เล็ก a ~ z
/P {Upper}: แสดงตัวอักษรตัวพิมพ์ใหญ่ A ~ A
/P {ASCII}: อักขระ ASCII
/p {alpha}: ตัวอักษรตัวอักษร
/P {Digit}: เลขทศนิยม, 0-9
/p {alnum}: ตัวเลขหรือตัวอักษร
/p {punch}: สัญลักษณ์เครื่องหมายวรรคตอน
/p {กราฟ}: อักขระที่มองเห็นได้
/p {print}: คุณสามารถพิมพ์อักขระได้
/p {blank}: ว่างเปล่าหรือ watchmaking
/p {cntrl}: ตัวควบคุมอักขระ
เมื่อใช้นิพจน์ทั่วไปหากจำเป็นต้องมีตัวละครเมตาบางประเภทหลายครั้งมันค่อนข้างลำบากในการเข้าร่วมในเวลาหนึ่ง ความหมายของมันอยู่ด้านล่าง
?: 0 หรือ 1 ครั้ง
*: 0 ครั้งหรือหลายครั้ง
+: 0 หรือ 1 ครั้ง
{n}: ทำซ้ำ n ครั้ง
{n,}: ทำซ้ำอย่างน้อย n ครั้ง
{n, m}: ทำซ้ำ n ~ m ครั้ง
ในการแสดงออกปกติคุณสามารถใส่ตัวละครหลายตัวในวงเล็บสี่เหลี่ยมจัตุรัส
[ABC]: หมายถึง A, B หรือ C.
[^abc]: ระบุตัวละครอื่น ๆ นอกเหนือจาก A, B และ C
[A-ZA-Z]: ตัวละครใด ๆ ของ A ~ Z หรือ A ~ Z
[AD [MP]]: ตัวละครใด ๆ ของ A ~ D หรือ M ~ P.
[AZ && [def]]: D, E หรือ F.
[az && [^bc]]]: a ~ z ไม่มีอักขระทั้งหมดของ b และ c ระหว่าง B และ C
[az && [^mp]]]: a ~ z ไม่มีอักขระทั้งหมดของ m ~ p ระหว่าง
ตัวอย่าง:
1. หมายเลขป้ายทะเบียน:
/**** @description: ตรวจสอบหมายเลขแผ่นป้ายทะเบียน* @param carnum* yu a106ek* @return กฎหมาย: จริงผิดกฎหมาย: เท็จ*/public boolean boolean validateCarnum (สตริง Carnum) สตริงใหม่ [] {"Jing", "Jin", "Ji", "Jin", "Liao", "Ji", "Black", "Shanghai", "Su", "Anhui", "Fujian", " Fujian "," Fujian "," Fujian "," Fujian "," Fujian "," Fujian "," Fujian "" Gan "," Lu "," Yu "," Hubei "," Xiang "," Gan " "Gui", "Qiong", "Chong", "เสฉวน" "ทิเบต", "Shaanxi", "Gan", "Qing", "Ning", "ใหม่", "ฮ่องกง", "ออสเตรเลีย", "มองโกเลีย" "}; string reg ="/u4e00-/u9fa5] {1} [az] {1} [a-z_0-9] {5} "; boolean firstchar = false; if (carnum.length ()> 0) { FirstChar = arrays.aslist (provente) {result = true;} else {result = fals e;}} catch (Exception E) {E.printStackTrace ();} ผลตอบแทนผล}}2. หมายเลขโทรศัพท์มือถือ:
/**** @descripting: ตรวจสอบหมายเลขโทรศัพท์มือถือ*@param mobilenum 15516985859*@return กฎหมาย: จริงผิดกฎหมาย: เท็จ*/บูลีนคงที่สาธารณะ ismobilenum (สตริง mobilenum) . compile ("^((13 [0-9]) | (15 [^4, // d]) | (18 [0,5-9])) // d {8} $"); = p.หมายเลขโทรศัพท์มือถือ+หมายเลขโทรศัพท์คงที่: 010-1111111,15516985859,0377-1111111
// java ทดสอบว่าเป็นหมายเลขโทรศัพท์ (โทรศัพท์มือถือ, การตรวจสอบโทรศัพท์คงที่) สตริง legalphone = "" ""; String regexp = "^((13 [0-9]) | (15 [^4, // D]) | (18 [0,5-9])) // d {8} | [0] {1} [0-9] {2,3}-[0-9] {7,8} $ "; การโทรทั้งหมดจะถูกใช้3. จำนวนจริง:
สตริง [] arrs = สตริงใหม่ [] {"a", "1.123", "-1.23", "0", "+111"}; = pattern.compile (regex); ;}พิมพ์:
A: FALSE
1.123: จริง
-1.23: จริง
0: จริง
+111: เท็จ