Java:
การใช้เรกุลาร์เอ็กเพรสชัน
วิธีการ:
การสนับสนุนเรื่อง regex ใน Java หลักๆ อยู่ที่คลาส Pattern
และ Matcher
ในแพ็คเกจ java.util.regex
นี่คือตัวอย่างง่ายๆ ในการค้นหาและพิมพ์คำทั้งหมดที่พบในสตริง โดยไม่คำนึงถึงตัวเล็กตัวใหญ่:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String text = "Regex is great for parsing. Parsing with regex is powerful.";
String wordToFind = "parsing";
Pattern pattern = Pattern.compile(wordToFind, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println("พบ '" + matcher.group() + "' ที่ตำแหน่ง " + matcher.start());
}
}
}
ผลลัพธ์:
พบ 'parsing' ที่ตำแหน่ง 16
พบ 'Parsing' ที่ตำแหน่ง 31
สำหรับงานเช่นการแยกสตริง คุณสามารถใช้เมธอด split()
ของคลาส String
ร่วมกับ regex:
public class SplitExample {
public static void main(String[] args) {
String text = "Java,Python,Ruby,JavaScript";
String[] languages = text.split(",");
for (String language : languages) {
System.out.println(language);
}
}
}
ผลลัพธ์:
Java
Python
Ruby
JavaScript
เมื่อทำงานกับ regex ใน Java อาจมีกรณีที่ไลบรารีภายนอกสามารถทำให้งานซับซ้อนง่ายขึ้นได้ หนึ่งในไลบรารีบุคคลที่สามที่นิยมสำหรับทำงานกับ regex ใน Java คือ Apache Commons Lang
มันเสนอยูทิลิตี้เช่น StringUtils
ที่ทำให้งานบางอย่างเกี่ยวกับ regex ง่ายขึ้น นี่คือวิธีใช้งานเพื่อนับจำนวนของการตรงกันของ substring:
import org.apache.commons.lang3.StringUtils;
public class CommonsLangExample {
public static void main(String[] args) {
String text = "Regex makes text processing easier. Processing text with regex is efficient.";
String substring = "processing";
int count = StringUtils.countMatches(text, substring);
System.out.println("'" + substring + "' ปรากฏ " + count + " ครั้ง.");
}
}
ในการใช้ Apache Commons Lang คุณจำเป็นต้องรวมมันเข้ากับโปรเจกต์ของคุณ หากคุณใช้ Maven เพิ่ม dependency นี้ในไฟล์ pom.xml
ของคุณ:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- ตรวจสอบเวอร์ชันล่าสุด -->
</dependency>
ผลลัพธ์:
'processing' ปรากฏ 2 ครั้ง.