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

จะแยกแท็ก HTML ออกจากสตริงโดยใช้ regex ใน Java ได้อย่างไร


แพ็คเกจ java.util.regex ของ java มีคลาสที่หลากหลายเพื่อค้นหารูปแบบเฉพาะในลำดับอักขระ

รูปแบบ คลาสของแพ็คเกจนี้เป็นการแสดงนิพจน์ทั่วไปที่คอมไพล์แล้ว ในการจับคู่นิพจน์ทั่วไปกับสตริง คลาสนี้จะมีสองวิธีคือ −

  • คอมไพล์() − เมธอดนี้ยอมรับสตริงที่แสดงนิพจน์ทั่วไปและส่งคืนอ็อบเจ็กต์ของรูปแบบคลาส

  • ตัวจับคู่() − เมธอดนี้ยอมรับค่าสตริงและสร้างอ็อบเจ็กต์ที่จับคู่ซึ่งตรงกับสตริงที่กำหนดกับรูปแบบที่แสดงโดยอ็อบเจ็กต์รูปแบบปัจจุบัน

ตัวจับคู่ คลาสของแพ็คเกจ java.util.regex เป็นเอ็นจิ้นที่ดำเนินการจับคู่ ในการหาค่าที่ตรงกัน คุณต้องใช้สองวิธีของคลาสนี้คือ −

  • ค้นหา() − เมธอดนี้คืนค่า จริง หากการดำเนินการจับคู่ที่แสดงโดยอ็อบเจกต์ปัจจุบันสำเร็จ มิฉะนั้น จะส่งกลับค่าเท็จ

  • กลุ่ม() - เมธอดนี้ยอมรับค่าจำนวนเต็มที่แสดงถึงกลุ่มใดกลุ่มหนึ่งและส่งกลับลำดับที่กลุ่มที่ระบุจับในการดำเนินการจับคู่

ดังนั้น ในการค้นหาแท็ก HTML จากสตริง −

  • สร้างวัตถุรูปแบบโดยส่งนิพจน์ทั่วไปที่แสดงถึงแท็ก HTML ที่ต้องการให้เป็นพารามิเตอร์ไปยังวิธีการคอมไพล์ () ของคลาส Pattern

  • จับคู่กับสตริงที่ต้องการโดยใช้เมธอด matcher() ของคลาส Pattern

  • ตรวจสอบว่าเกิดขึ้นโดยใช้เมธอด find() ของคลาส Matcher หรือไม่

  • ในกรณีของการจับคู่ ดึงสตริงที่ตรงกันโดยใช้เมธอด group() ของคลาส Matcher

ตัวอย่าง

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractHtmlTag {
   public static void main(String[] args) {
      String str = "Welcome to <b>Tutorialspoint<b>";
      //Creating a pattern object
      Pattern pattern = Pattern.compile("<b>(\\S+)</b>");
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(str);
      if (matcher.find()) {
         String result = matcher.group(1);
         System.out.println(result);
      }
   }
}

ผลลัพธ์

Tutorialspoint