CodeGym /בלוג Java /Random-HE /Java Regex - Matcher
John Squirrels
רָמָה
San Francisco

Java Regex - Matcher

פורסם בקבוצה

מהו Regex בג'אווה?

ביטוי רגולרי או ביטוי רגולרי הוא רצף של תווים היוצרים דפוס. כאשר אתה מחפש נתונים כלשהם, אתה יכול להשתמש בדפוס מיוחד זה כדי למצוא מחרוזות תואמות. זה יכול להיות פשוט כמו תו בודד או שזה יכול להיות דפוס מורכב יותר. ב-Java, יש לך חבילת java regex הכוללת מחלקות המספקות את המאפשר להשתמש בביטויים רגולריים לחיפוש תבניות ולמניפולציה. חבילה זו מיובאת לקוד שלך בדרך הבאה.
import java.util.regex.*;

Java Regex - Matcher

מחלקת Java Matcher מספקת התאמת דפוסים עם ביטויים רגולריים.
שורת קוד זו מייבאת את כל המחלקות הזמינות בחבילת הרקס. אם אתה רוצה לייבא רק את מחלקה Matcher אתה יכול לייבא אותה באמצעות שורת הקוד הבאה.
import java.util.regex.Matcher;
לחבילת java regex יש שלוש מחלקות:
  1. מחלקת דפוס : כדי להגדיר את הדפוס שיש לחפש.

  2. מחלקת התאמה : כדי להתאים את התבנית בטקסט ולמצוא אותה.

  3. PatternSyntaxException Class: לציון שגיאות תחביר כלשהן בביטוי הרגולרי.

העבודה של זה די פשוטה. ראשית, אתה יוצר אובייקט Pattern מהביטוי הרגולרי כדי להגדיר דפוס. לאחר מכן נוצר אובייקט Matcher באמצעות האובייקט Pattern . למחלקת Matcher יש שיטות רבות. החשובה שבהן היא שיטת matches() שמחזירה true אם הביטוי הרגולרי מתאים לטקסט, אחרת מחזירה false . ל-Java Matcher Class יש שיטות שימושיות רבות אחרות להחלפת טקסט במחרוזות הקלט שמבצעות פונקציות מורכבות יותר משיטות replace() ב-java. יש רק שתי שיטות replace() ב-java, בעוד שהמחלקה Matcher מספקת מספר פונקציות עבור משימה זו.

שיטות Java Matcher Class

חלק משיטות Java Matcher Class מתוארות להלן.
  • boolean matches() - מחזירה true אם הביטוי הרגולרי מתאים לתבנית.

  • boolean find() - מוצא את הביטוי הרגולרי הבא שתואם לתבנית.

  • boolean find(int start) - מוצא את הביטוי הרגולרי הבא שתואם את התבנית מההתחלה הנתונה.

  • int start() - מחזיר את האינדקס ההתחלתי של ההתאמה.

  • int end() - מחזירה את אינדקס הסיום של ההתאמה המוחזרת.

  • int groupCount() - מחזיר את המספר הכולל של קבוצות בהתאמה.

  • String replaceAll(מחרוזת החלפת) - מחליף כל רצף של ההתאמה בהחלפה הנתונה.

  • String replaceFirst(מחרוזת החלפת) - מחליף את רצף המשנה הראשון של ההתאמה בהחלפה הנתונה.

דוגמה ל-Java Matcher

ישנן שיטות שימושיות רבות למחלקה Matcher , עם זאת, נסתכל עוד על הדוגמאות הספציפיות של שיטת matches() .

שימוש בשיטת matches()

להלן דוגמה ל-Java Matcher עבור שיטת 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 עבור התאמות(): false התבנית היא: (.*)apple(.*) טקסט לבדיקה הוא: פלט אפל עבור התאמות() : false התבנית היא: (.*)apple(.*) טקסט לבדיקה הוא: apple פלט עבור התאמות(): true התבנית היא: (.*)apple(.*) טקסט לבדיקה הוא: תפוח ביום מרחיק את הרופא. פלט עבור התאמות(): true התבנית היא: (.*)apple(.*) הטקסט שיש לבדוק הוא: תפוח ירוק, תפוח צהוב, תפוח אדום, אני אוהב כל מיני תפוחים. פלט עבור התאמות(): true

סיכום

עד סוף פוסט זה, אנו מקווים שהכרת את מחלקת Java Matcher ב-Java. למדת כיצד להשתמש בו בקוד שלך. למדת גם איך לקרוא לשיטת matches() של Matcher Class. אתה יכול לנסות שיטות אחרות של מחלקה Matcher בעצמך כדי להבין את זה יותר לעומק. המשך להתאמן כדי לקבל שליטה עמוקה יותר על הרעיון. עד אז, המשיכו לגדול ותמשיכו לזרוח!
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION