Java:
การลบตัวอักษรที่ตรงกับรูปแบบ
วิธีการ:
ใน Java, เรามักใช้เมธอด String.replaceAll()
ร่วมกับ regex pattern เพื่อลบอักขระ นี่คือตัวอย่างอย่างรวดเร็ว:
public class PatternDeletionExample {
public static void main(String[] args) {
String originalString = "Hello, 123 World! This-is a test-string.";
String pattern = "\\d|-"; // \d คือตัวเลข, - คือเครื่องหมายขีด
String cleanedString = originalString.replaceAll(pattern, "");
System.out.println(cleanedString); // แสดงผล: Hello, World! This is a teststring.
}
}
โค้ดนี้จะตัดตัวเลขและเครื่องหมายขีดออกเพื่อทำความสะอาดสตริงของเรา
ค้นลึก
ในอดีต, คนๆหนึ่งได้จัดการกับสตริงโดยไม่มีเมธอดที่สะดวกและ regex พวกเขาทำมันด้วยวิธีที่ยากลำบาก, อักขระต่ออักขระ, ซึ่งเป็นเรื่องที่เจ็บปวด แล้ว regular expressions (regex) ก็ปรากฏขึ้น, และทุกอย่างก็ง่ายขึ้นมาก regex เป็นมาตรฐานการจับคู่แพทเทิร์นที่มีพลังในการประมวลผลข้อความ
แล้วทำไมต้องใช้ replaceAll()
? มันเป็นส่วนหนึ่งของคลาส String
ใน Java, และเนื่องจากสตริงมีอยู่ทุกที่, มันจึงกลายเป็นตัวเลือกแรกสำหรับการแก้ไขข้อความตามแพทเทิร์น มันรับพารามิเตอร์สองตัว: regex สำหรับแพทเทิร์นที่ต้องการกำจัดและสิ่งที่จะใส่แทน — ในกรณีของเรา, สตริงว่างเพื่อลบมัน
มีทางเลือกอื่นเช่นคลาส Pattern
และ Matcher
สำหรับงานที่ซับซ้อนมากกว่า ทั้งสองมีประโยชน์สำหรับงานที่ละเอียดอ่อนขึ้น เช่น การหาแพทเทิร์นโดยไม่ลบออก, หรือการแทนที่ในวิธีที่ซับซ้อนขึ้น
การทำงานขึ้นอยู่กับเอ็นจิน regex ของ Java, ซึ่งวิเคราะห์แพทเทิร์นและนำมาใช้กับสตริงเป้าหมาย เป็นภารกิจค้นหาและทำลายอักขระเล็กๆ—ค้นหาแพทเทิร์น, แล้วกำจัดมัน
ดูเพิ่มเติม
- คลาส Java
Pattern
: java.util.regex.Pattern - คลาส Java
Matcher
: java.util.regex.Matcher - คู่มือการใช้งาน Regex: Regular Expressions – User Guide
- เมธอด
replaceAll()
: java.lang.String#replaceAll