CodeGym /وبلاگ جاوا /Random-FA /Java Regex - Matcher
John Squirrels
مرحله
San Francisco

Java Regex - Matcher

در گروه منتشر شد

Regex در جاوا چیست؟

یک عبارت منظم یا regex دنباله ای از کاراکترها است که یک الگو را تشکیل می دهند. هنگامی که به دنبال هر داده ای هستید، می توانید از این الگوی تخصصی برای یافتن رشته های منطبق استفاده کنید. می تواند به سادگی یک کاراکتر باشد یا می تواند الگوی پیچیده تری باشد. در جاوا، شما یک بسته جاوا regex دارید که دارای کلاس هایی است که امکان استفاده از عبارات منظم را برای جستجو و دستکاری الگو فراهم می کند. این بسته به روش زیر وارد کد شما می شود.
import java.util.regex.*;

Java Regex - Matcher

کلاس Java Matcher تطبیق الگو با عبارات منظم را فراهم می کند.
این خط کد تمام کلاس های موجود در بسته regex را وارد می کند. اگر می خواهید فقط کلاس Matcher را وارد کنید ، می توانید آن را با استفاده از خط کد زیر وارد کنید.
import java.util.regex.Matcher;
بسته java regex دارای سه کلاس است:
  1. کلاس الگو : برای تعریف الگویی که باید جستجو شود.

  2. کلاس تطبیق : برای مطابقت با الگوی متن و پیدا کردن آن.

  3. کلاس PatternSyntaxException : برای نشان دادن هرگونه خطای نحوی در عبارت منظم.

کار آن بسیار ساده است. ابتدا یک شی الگو از عبارت منظم برای تعریف یک الگو ایجاد می کنید. سپس یک شیء Matcher با استفاده از شی Pattern ایجاد می شود . کلاس Matcher متدهای زیادی دارد. مهم ترین آنها متد matches() است که اگر عبارت منظم با متن مطابقت داشته باشد true را برمی گرداند، else false را برمی گرداند . کلاس جاوا Matcher روش های مفید دیگری برای جایگزینی متن در رشته های ورودی دارد که عملکردهای پیچیده تری نسبت به متدهای ()replace در جاوا انجام می دهند. تنها دو متد ()replace در جاوا وجود دارد ، در حالی که کلاس Matcher چندین توابع را برای این کار ارائه می کند.

روش های کلاس جاوا مطابقت

برخی از متدهای Java Matcher Class در زیر توضیح داده شده است.
  • Boolean matches() - اگر عبارت منظم با الگو مطابقت داشته باشد true را برمی گرداند.

  • boolean find() - عبارت منظم بعدی را که با الگو مطابقت دارد را پیدا می کند.

  • boolean find(int start) - عبارت منظم بعدی را که با الگوی شروع داده شده مطابقت دارد را پیدا می کند.

  • int start() - ایندکس شروع مسابقه را برمی گرداند.

  • int end() - اندیس پایانی مسابقه برگشتی را برمی گرداند.

  • int groupCount() - تعداد کل گروه‌های موجود در مسابقه را برمی‌گرداند.

  • String replaceAll (جایگزینی رشته) - هر دنباله مسابقه را با جایگزین داده شده جایگزین می کند.

  • String replaceFirst (جایگزینی رشته) - اولین دنباله مسابقه را با جایگزین داده شده جایگزین می کند.

مثال جاوا تطبیق دهنده

متدهای مفید زیادی برای کلاس Matcher وجود دارد ، با این حال، در ادامه به بررسی مثال(های) خاص متد matches() خواهیم پرداخت .

با استفاده از متد matches()

در زیر یک متد Java Matcher Example for matches () را نشان می دهد .
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 for matches(): false الگو این است: (.*)apple(.*) متنی که باید بررسی شود: Apple Output for matches() : false الگو این است: (.*)apple(.*) متنی که باید بررسی شود: apple خروجی برای matches(): true الگو این است: (.*)apple(.*) متنی که باید بررسی شود: یک سیب در روز دکتر را دور نگه می دارد خروجی برای matches(): true الگو این است: (.*)apple(.*) متنی که باید بررسی شود این است: سیب سبز، سیب زرد، سیب قرمز، من عاشق همه نوع سیب هستم. خروجی برای matches(): true

نتیجه

تا پایان این پست، امیدواریم با کلاس جاوا تطبیق دهنده در جاوا آشنا شده باشید . شما یاد گرفته اید که چگونه از آن در کد خود استفاده کنید. شما همچنین یاد گرفته اید که چگونه متد matches() کلاس Matcher را فراخوانی کنید . می توانید روش های دیگر کلاس Matcher را به تنهایی امتحان کنید تا آن را عمیق تر درک کنید. برای تسلط عمیق تر به مفهوم به تمرین ادامه دهید. تا آن زمان، به رشد خود ادامه دهید و همچنان بدرخشید!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION