Regex หรือ Regular Expression คือชุดของอักขระพิเศษที่รวมกันเพื่อสร้างรูปแบบเพื่อค้นหาอักขระในสตริง ในการเขียนโปรแกรมคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์ การเรียนรู้ regex จะมีประโยชน์มากในการค้นหาข้อมูลในข้อความใดๆ การค้นหาข้อความ การจัดรูปแบบ และการแทนที่ข้อความทุกประเภทสามารถทำได้โดยใช้นิพจน์ทั่วไป
บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับการใช้ช่องว่าง regex ใน Java
Regex ใน Java คืออะไร?
Regular Expression หรือ Regex อาจเรียบง่ายเหมือนอักขระตัวเดียวหรือรูปแบบที่ซับซ้อน สามารถสร้างได้ด้วยสตริงข้อความและสัญลักษณ์ในลำดับเฉพาะ อักขระส่วนใหญ่ใน regex เป็นตัวอักษรและสัญลักษณ์การพิมพ์ Regex คำนึงถึงขนาดตัวพิมพ์ ดังนั้นโปรดระลึกไว้เสมอว่าในขณะสร้างและใช้งาน
วิธีใช้ Regex Whitespace ใน Java
แม้ว่า Java จะไม่มีคลาส Regular Expression ที่กำหนดไว้ล่วงหน้า อย่างไรก็ตาม เราสามารถใช้นิพจน์ทั่วไปได้โดยการนำเข้า ' java.util.regex ' ห้องสมุด. รวมถึงบางชั้นเรียนเช่น ' ลวดลาย ” ซึ่งใช้สำหรับกำหนดรูปแบบ regex และ “ แมตช์ ” ซึ่งใช้ในการค้นหาด้วยรูปแบบ
มีสองวิธีในการใช้ช่องว่าง regex ใน Java ดังนี้:
-
- ใช้เมธอด Pattern.matches() (ใช้ regex ที่กำหนดไว้ล่วงหน้า)
- การใช้คลาส Pattern และ Matcher (สร้าง regex ที่ผู้ใช้กำหนดเพื่อให้ตรงกัน)
มาดูกันว่าวิธีการเหล่านี้จะทำงานกับ regex สำหรับช่องว่างใน Java ได้อย่างไร
วิธีที่ 1: ใช้ Regex Whitespace ที่กำหนดไว้ล่วงหน้าด้วยเมธอด Pattern.matches() ใน Java
ในการค้นหาช่องว่างในสตริง มีสาม regexes ทั่วไปใน Java:
-
- \s : มันแสดงถึงช่องว่างสีขาวเดียว
- \s+ : ระบุช่องว่างสีขาวหลายช่อง
- \u0020 : เป็น Unicode ของพื้นที่สีขาวที่ใช้เป็น regex เพื่อค้นหาช่องว่างในข้อความ
เราสามารถใช้ regexes เหล่านี้ในวิธีคงที่ ' แมตช์() ' ของ ' ลวดลาย ' ระดับ. คลาสรูปแบบเป็นของ “ java.util.regex ' บรรจุุภัณฑ์. ด้านล่างนี้เป็นไวยากรณ์ของเมธอด Pattern.matches() ที่ให้มา:
ไวยากรณ์
Pattern.matches ( '\s' , ' ' ) ;
เมธอดที่ระบุใช้อาร์กิวเมนต์สองอาร์กิวเมนต์: นิพจน์ทั่วไปและสตริงที่ตรงกัน อาร์กิวเมนต์แรก “\s” คือนิพจน์ทั่วไปหรือ regex ของช่องว่าง และอาร์กิวเมนต์ที่สอง ” “ คือช่องว่างในสตริง คืนค่า true หรือ false เป็นค่าบูลีน
ตัวอย่างที่ 1: ใช้ “\s” WhiteSpace Regex
ในที่นี้เราจะใช้ “ \s ” regex ในเมธอด Pattern.matches() เราจะส่งสตริงที่ไม่มีช่องว่างในเมธอดเป็นอาร์กิวเมนต์ที่สอง เมธอดจะตรวจสอบ regex และสตริง จากนั้นคืนค่าบูลีนที่จะเก็บไว้ใน ' การแข่งขัน ' ตัวแปร:
บูลีน การแข่งขัน = Pattern.matches ( '\s' , '' ) ;
พิมพ์ค่าของตัวแปรการจับคู่โดยใช้ “ System.out.println() ' กระบวนการ:
ค่าที่ส่งคืนโดย “ รูปแบบ.matches() ” วิธีการคือ “ เท็จ ” เพราะสตริงที่ส่งผ่านไม่มีที่ว่าง:
ตอนนี้เราจะดูตัวอย่างอื่น ๆ เพื่อจับคู่ช่องว่างกับ regexes อื่น ๆ
ตัวอย่างที่ 2: ใช้ “\s+” WhiteSpace Regex
ในตัวอย่างนี้ เราจะผ่าน “ \s+ ” regex ใน “ แมตช์() ” วิธีหาช่องว่างหลายช่อง:
บูลีน การแข่งขัน = Pattern.matches ( '\s+' , ' ' ) ;
พิมพ์ค่าของตัวแปรการจับคู่ที่เก็บผลลัพธ์ที่ส่งคืนจากเมธอด:
เนื่องจากอาร์กิวเมนต์ที่สองมีช่องว่าง ค่าผลลัพธ์จะแสดงเป็น “ จริง ”:
ตัวอย่างที่ 3: ใช้ “\u0020” WhiteSpace Regex
ที่นี่เราจะแสดงให้คุณเห็นว่า Unicode ถูกใช้เป็น regex ใน Java อย่างไร เพื่อวัตถุประสงค์ที่กำหนด เราจะใช้ “ \u0020 ” regex เป็น Unicode ของพื้นที่สีขาว:
บูลีน การแข่งขัน = Pattern.matches ( '\u0020' , ' ' ) ;
พิมพ์ค่าที่ส่งคืน:
Pattern.matches() วิธีการจะพิมพ์ “ จริง ” เป็นสตริงที่ส่งผ่านที่มีช่องว่างสีขาว:
ไปที่วิธีอื่นเพื่อใช้ regex ใน Java
วิธีที่ 2: ใช้ Regex Whitespace ที่ผู้ใช้กำหนดด้วย Pattern และ Matcher class
“ ลวดลาย ” ใช้เพื่อกำหนดหรือสร้างรูปแบบ ในขณะที่ “ แมตช์ ” ใช้ในการค้นหาตามรูปแบบที่กำหนด สามารถสร้างรูปแบบสำหรับ regex ได้โดยใช้ปุ่ม ' รวบรวม() ” วิธีการของคลาส Pattern ใช้พารามิเตอร์เพียงตัวเดียว ซึ่งเป็นรูปแบบที่คุณต้องการคอมไพล์เพื่อวัตถุประสงค์ใดก็ได้
ไวยากรณ์
Pattern.คอมไพล์ ( ' \t \p{Zs}' ) ;
ดิ แมตช์ คลาสจับคู่รูปแบบโดยใช้ “ แมตช์() ' กระบวนการ. ต้องใช้ “ สตริง ” ตามแบบ
ไวยากรณ์
patternVariable.matcher ( สตริง ) ;
มี regex ที่กำหนดไว้ล่วงหน้าสำหรับช่องว่างที่เราได้กล่าวถึงข้างต้น ส่วนที่เหลือแสดงอยู่ด้านล่าง:
-
- \\t\\p{Zs}
- \\p{Zs}
ตอนนี้ มาดูตัวอย่างกัน
ตัวอย่างที่ 1: ใช้ “\\t\\p{Zs}” WhiteSpace Regex
ในตัวอย่างนี้ เราจะหาจำนวนช่องว่างโดยการนับ ขั้นแรกเราจะสร้างสตริง “ ส ” และพิมพ์ออกมาบนคอนโซล:
สตริง s = 'ยินดีต้อนรับสู่ลินุกซ์คำแนะนำ' ;System.out.println ( ส ) ;
ต่อไปเราจะกำหนดรูปแบบ “ \\t\\p{Zs} ” ที่ทำหน้าที่เป็น regex ช่องว่างใน Java และเท่ากับ “ \s ” หลังจากรวบรวมรูปแบบที่กำหนดแล้ว ตัวแปร “ regexPattern ” จะมีค่าผลลัพธ์:
โทรหา “ แมตช์() ” วิธีการและผ่าน “ ส สตริง:
สร้างตัวแปรประเภทจำนวนเต็ม “ นับ ” และเริ่มต้นด้วยค่า “ 0 ”:
นับจำนวนช่องว่างที่มีอยู่ในสตริงโดยใช้ ' ในขณะที่ ห่วง. ลูปจะข้ามผ่านสตริงและเพิ่มค่าตัวแปรนับหากพบช่องว่าง:
นับ++;
}
สุดท้าย พิมพ์ค่าการนับเพื่อแสดงจำนวนช่องว่างที่พบในสตริง:
เอาท์พุต
ตัวอย่างที่ 2: ใช้ “\p{Zs}” WhiteSpace Regex
ตอนนี้เราจะหาช่องว่างในสตริงโดยใช้รูปแบบอื่น ' \p{Zs} ” รูปแบบนี้ทำงานคล้ายกับ “ \s ' และ ' \s+ ” regex:
รูปแบบ regexPattern = Pattern.compile ( '\\p{Zs}' ) ;
ตอนนี้เราเรียกว่า “ แมตช์() ” วิธีการและผ่าน “ ส สตริงเป็นอาร์กิวเมนต์:
ในตัวอย่างข้างต้น เรายังใช้ “ ในขณะที่ วนซ้ำเพื่อนับช่องว่างในสตริงและพิมพ์:
ผลลัพธ์ที่กำหนดระบุว่าสตริงของเรา ' ยินดีต้อนรับสู่คำแนะนำ Linux ” มีช่องว่างสามช่อง:
เรารวบรวมวิธีการที่ง่ายที่สุดทั้งหมดที่สามารถช่วยให้คุณใช้ช่องว่าง regex ใน Java
บทสรุป
มีนิพจน์ทั่วไปมากมายสำหรับช่องว่างเช่น “ \s ”, “ \s+ ”, “ \u0020 ”, “ \\t\\p{Zs} ', และ ' \\p{Zs} ” regexes เหล่านี้ใช้ในเมธอดmatch() ของคลาส Pattern หรือโดยการกำหนดรูปแบบด้วย Pattern Class และจับคู่โดยใช้คลาส Matcher ช่องว่าง regex ที่ใช้บ่อยที่สุดคือ \s และ \s+ ในบทช่วยสอนนี้ เราได้กล่าวถึงวิธีการทั้งหมดในการใช้ช่องว่าง regex ใน Java