โค้ดยิม/จาวาบล็อก/สุ่ม/Java Regex - ตัวจับคู่
John Squirrels
ระดับ
San Francisco

Java Regex - ตัวจับคู่

เผยแพร่ในกลุ่ม

Regex ใน Java คืออะไร?

นิพจน์ทั่วไป หรือ regex คือลำดับของอักขระที่สร้างรูปแบบ เมื่อคุณค้นหาข้อมูลใดๆ คุณสามารถใช้รูปแบบพิเศษนี้เพื่อค้นหาสตริงที่ตรงกัน อาจเป็นแบบเรียบง่ายเหมือนกับอักขระตัวเดียวหรืออาจเป็นรูปแบบที่ซับซ้อนมากขึ้นก็ได้ ใน Java คุณมีแพ็คเกจ Java regex ที่มีคลาสที่ให้ความสะดวกในการใช้นิพจน์ทั่วไปสำหรับการค้นหาและจัดการรูปแบบ แพ็คเกจนี้ถูกนำเข้าสู่โค้ดของคุณด้วยวิธีต่อไปนี้
import java.util.regex.*;

Java Regex - ตัวจับคู่

Java Matcher Class จัดให้มีการจับคู่รูปแบบกับนิพจน์ทั่วไป
โค้ดบรรทัดนี้จะนำเข้าคลาสทั้งหมดที่มีอยู่ในแพ็คเกจ regex หากคุณต้องการนำเข้าเฉพาะ คลาส Matcherคุณสามารถนำเข้าได้โดยใช้โค้ดบรรทัดต่อไปนี้
import java.util.regex.Matcher;
แพ็คเกจ Java regex มีสามคลาส:
  1. Pattern Class: เพื่อกำหนดรูปแบบที่ต้องการค้นหา

  2. Matcher Class: เพื่อให้ตรงกับรูปแบบในข้อความและค้นหา

  3. PatternSyntaxException Class: เพื่อระบุข้อผิดพลาดทางไวยากรณ์ในนิพจน์ทั่วไป

การทำงานของมันค่อนข้างง่าย ขั้นแรก คุณสร้าง ออบเจ็กต์ Patternจากนิพจน์ทั่วไปเพื่อกำหนดรูปแบบ จากนั้น วัตถุ Matcherจะถูกสร้างขึ้นโดยใช้วัตถุPattern คลาสMatcherมีหลายวิธี สิ่งที่สำคัญที่สุดคือ เมธอด matchs()ซึ่งจะคืนค่าtrue หากนิพจน์ทั่วไปตรงกับข้อความ มิฉะนั้นจะส่งคืนค่าfalse Java Matcher Class มีวิธีการที่เป็นประโยชน์อื่นๆ มากมายสำหรับการแทนที่ข้อความในสตริงอินพุตที่ทำหน้าที่ที่ซับซ้อนมากกว่า วิธีการ แทนที่ ()ใน java มี วิธี แทนที่ () เพียงสอง วิธีใน java ในขณะที่ คลาส Matcherมีฟังก์ชันหลายอย่างสำหรับงานนี้

วิธีการคลาส Java Matcher

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

  • boolean find() - ค้นหานิพจน์ทั่วไปถัดไปที่ตรงกับรูปแบบ

  • Boolean find(int start) - ค้นหานิพจน์ทั่วไปถัดไปที่ตรงกับรูปแบบจากจุดเริ่มต้นที่กำหนด

  • int start() - ส่งคืนดัชนีเริ่มต้นของการแข่งขัน

  • int end() - ส่งคืนดัชนีสิ้นสุดของการจับคู่ที่ส่งคืน

  • int groupCount() — คืนค่าจำนวนกลุ่มทั้งหมดในการแข่งขัน

  • สตริงแทนที่ทั้งหมด(การแทนที่สตริง) — แทนที่ทุกลำดับย่อยของการจับคู่ด้วยการแทนที่ที่กำหนด

  • สตริงreplaceFirst(การแทนที่สตริง) — แทนที่ลำดับย่อยแรกของการจับคู่ด้วยการแทนที่ที่กำหนด

ตัวอย่าง Java Matcher

มีวิธีการที่เป็นประโยชน์มากมายสำหรับ คลาส Matcherอย่างไรก็ตาม เราจะดูตัวอย่างเฉพาะของวิธีการ matchs() เพิ่มเติม

โดยใช้เมธอดmatch()

ต่อไปนี้แสดงให้เห็นถึงตัวอย่าง Java Matcherสำหรับmatching()วิธีการ
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {

	public static void main(String[] args) {

		String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
		String firstCheck = "Apples";
		String secondCheck = "Apple";
		String thirdCheck = "apple";
		String fourthCheck = "An apple a day keeps the doctor away.";
		String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";


		Pattern pattern = Pattern.compile(regexPattern);
		Matcher matcher1 = pattern.matcher(firstCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + firstCheck);
		System.out.println("Output for matches(): " + matcher1.matches() + "\n");

		Matcher matcher2 = pattern.matcher(secondCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + secondCheck);
		System.out.println("Output for matches(): " + matcher2.matches() + "\n");

		Matcher matcher3 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + thirdCheck);
		System.out.println("Output for matches(): " + matcher3.matches() + "\n");

		Matcher matcher4 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fourthCheck);
		System.out.println("Output for matches(): " + matcher4.matches() + "\n");

		Matcher matcher5 = pattern.matcher(fifthCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fifthCheck);
		System.out.println("Output for matches(): " + matcher5.matches() + "\n");
	}
}
เอาท์พุต
รูปแบบคือ: (.*)apple(.*) ข้อความที่จะตรวจสอบคือ: Apples Output formatchs(): false รูปแบบคือ: (.*)apple(.*) ข้อความที่จะตรวจสอบคือ: Apple Output formatchs() : false รูปแบบคือ: (.*)apple(.*) ข้อความที่จะตรวจสอบคือ: apple ผลลัพธ์สำหรับการจับคู่ (): true รูปแบบคือ: (.*)apple(.*) ข้อความที่จะตรวจสอบคือ: An apple a day ทำให้แพทย์ไม่อยู่ ผลลัพธ์สำหรับการจับคู่ (): true รูปแบบคือ: (.*)apple(.*) ข้อความที่จะตรวจสอบคือ: แอปเปิ้ลเขียว, แอปเปิ้ลเหลือง, แอปเปิ้ลแดง, ฉันชอบแอปเปิ้ลทุกชนิด เอาต์พุตสำหรับการจับคู่ (): จริง

บทสรุป

ในตอนท้ายของบทความนี้ เราหวังว่าคุณจะคุ้นเคยกับ Java Matcher Class ใน Java แล้ว คุณได้เรียนรู้วิธีใช้งานในโค้ดของคุณแล้ว คุณยังได้เรียนรู้วิธีการเรียกเมธอดmatchs()ของMatcher Class อีกด้วย คุณสามารถลองใช้วิธีอื่นของMatcher Class ได้ด้วยตัวเองเพื่อทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น ฝึกฝนต่อไปเพื่อควบคุมแนวคิดที่ลึกซึ้งยิ่งขึ้น ถึงตอนนั้น จงเติบโตและเปล่งประกายต่อไป!
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ