Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จับคู่หลายบรรทัดในนิพจน์ปกติ Java


เพื่อจับคู่/ค้นหาข้อมูลที่ป้อนด้วยหลายบรรทัด -

  • รับสตริงอินพุต

  • แยกเป็นอาร์เรย์ของโทเค็นโดยส่ง "\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