เพื่อจับคู่/ค้นหาข้อมูลที่ป้อนด้วยหลายบรรทัด -
-
รับสตริงอินพุต
-
แยกเป็นอาร์เรย์ของโทเค็นโดยส่ง "\r?\n" เป็นพารามิเตอร์ไปยังวิธีการแยก
-
รวบรวมนิพจน์ทั่วไปที่จำเป็นโดยใช้วิธีการคอมไพล์ () ของคลาสรูปแบบ
-
ดึงวัตถุที่จับคู่โดยใช้เมธอด matcher()
-
ใน for loop ค้นหารายการที่ตรงกันในแต่ละองค์ประกอบ (บรรทัดใหม่) ของอาร์เรย์โดยใช้เมธอด find()
-
รีเซ็ตอินพุตของตัวจับคู่ไปยังองค์ประกอบถัดไปของอาร์เรย์โดยใช้เมธอด reset()
ตัวอย่าง
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatchingText{
public static void main(String[] args) {
String input = "sample text line 1 \n line2 353 35 63 \n line 3 53 35";
String regex = "\\d";
String[] strArray = input.split("\r?\n");
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Matching the compiled pattern in the String
Matcher matcher = pattern.matcher(input);
for (int i = 0; i < strArray.length; i++) {
matcher.reset(strArray[i]);
System.out.println("Line:: "+(i+1));
while (matcher.find()) {
System.out.print(matcher.group()+" ");
}
System.out.println();
}
}
} ผลลัพธ์
Line:: 1 1 Line:: 2 2 3 5 3 3 5 6 3 Line:: 3 3 5 3 3 5