Rumah >Java >javaTutorial >Java Match

Java Match

王林
王林asal
2024-08-30 16:00:27763semak imbas

Kelas Java Matcher ialah salah satu kelas pakej Java Regex. Kelas dan corak Java Matcher adalah sebahagian daripada pakej Regex, yang menyediakan kemudahan mencipta kelas dan antara muka untuk ungkapan biasa. Ia membantu untuk mencari operasi dan jujukan aksara bagi ungkapan biasa dan kemudian membuat perbandingan dengan jujukan aksara lain bagi ungkapan biasa untuk mencapai padanan. Sebaik sahaja perlawanan dipukul, ia mencipta antara muka yang dipanggil sebagai antara muka MatchResult. Enjin regex digunakan untuk melaksanakan senario yang ditentukan bagi pemadanan jujukan aksara dan mencipta antara muka.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Kaedah Kelas Java Matcher

Diberikan di bawah adalah kaedah kelas:

  • padanan boolean awam()
  • carian boolean awam()
  • carian boolean awam(int mula)
  • kumpulan Rentetan awam()
  • public int start() dan int start(int group)
  • public int end() dan int end(int group)
  • kumpulan int awamCount()
  • public boolean lookingAt()
  • tambahan Padanan awam()
  • awam StringBuffer appendTail()
  • rentetan awam menggantikanSemua()
  • rentetan awam replaceFirst()
  • petikan String statik awamReplacement()

1. padanan boolean awam()

boolean matches() ialah kaedah dalam kelas Java Matcher yang digunakan untuk menguji sama ada ungkapan biasa sepadan dengan corak.

Contoh:

Program ini menggambarkan kaedah padanan boolean awam() kelas Java Matcher dengan corak.

Kod:

import java.util.regex.*;
public class BooleanRegMatches{
public static void main(String args[])
{
System.out.println(Pattern.matches("[banana]", "qda"));
System.out.println(Pattern.matches("[mango]", "mn"));
System.out.println(Pattern.matches("[orange]", "e"));
}
}

Output:

Java Match

2. public boolean find()

Kaedah ini adalah sebahagian daripada kelas pemadan yang digunakan untuk mencari dan memadankan ungkapan seterusnya, yang boleh memadankan corak dan boleh digunakan untuk mencipta antara muka.

Contoh:

Atur cara ini digunakan untuk mencari dan memadankan ungkapan biasa untuk dipadankan dan dibandingkan dengan corak untuk mencipta antara muka.

Kod:

import java.util.regex.Pattern;
import java.util.Scanner;
import java.util.regex.Matcher;
public class Regx_Pattrn_1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (true) {
System.out.println("consider a regulr exprssn for traversing:");
Pattern pattern_k = Pattern.compile(sc.nextLine());
System.out.println("Next Text to Execute:");
Matcher matcher_g = pattern_k.matcher(sc.nextLine());
boolean found = false;
while (matcher_g.find()) {
System.out.println(" Text needs to be searched  "+matcher_g.group()+" from starting index "+
matcher_g.start()+" and from ending index "+matcher_g.end());
found = true;
}
if(!found){
System.out.println("No match is found after comparison");
}
}
}
}

Output:

Java Match

3. carian boolean awam(int mula)

Kaedah ini digunakan untuk mengetahui kaedah yang sepadan dengan ungkapan biasa bermula dari awal atau indeks penamat.

Contoh:

Atur cara ini menunjukkan kaedah boolean find(int start), yang memberikan indeks permulaan dan penamat bagi ungkapan biasa.

Kod:

import java.util.regex.Pattern;
import java.util.Scanner;
import java.util.regex.Matcher;
public class Java_Pattrn_2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (true) {
System.out.println("Form one reg_expression pattern:");
Pattern pattern_j = Pattern.compile(sc.nextLine());
System.out.println("Neeed to match some part of the string for execution:");
Matcher matcher_o = pattern_j.matcher(sc.nextLine());
boolean found1 = false;
while (matcher_o.find()) {
System.out.println("got the pattern initiated where "+matcher_o.group()+" index_is_starting "+
matcher_o.start()+" index_is_ending "+matcher_o.end());
found1 = true;
}
if(!found1){
System.out.println("Some kind of mismatch is prevailing");
}
}
}
}

Output:

Java Match

4. kumpulan Rentetan awam()

Kaedah ini ialah sebahagian daripada kelas Java Matcher yang mengembalikan rentetan yang dipadankan bagi ungkapan biasa kemudiannya.

Contoh:

Atur cara ini menunjukkan kaedah kumpulan String () kelas Java Matcher, yang cuba menjana subrentetan seterusnya ungkapan biasa selepas memukul rentetan padanan.

Kod:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regx_Pttrn_3 {
public static void main(String[] args) {
String reg_exprn_txt ="I am trying to learn something new, and trying to learning something from there," +
" and will one day become a skilled person. ";
String pattern_one_str = "(trying)";
Pattern pattrn_7 = Pattern.compile(pattern_one_str);
Matcher matchr_0 = pattrn_7.matcher(reg_exprn_txt);
while(matchr_0.find()) {
System.out.println(" Matched_Value: " + matchr_0.group(1));
}
}
}

Output:

Java Match

5. public int start() dan int start(int group)

kaedah int start () dan int start(int group) sebagai sebahagian daripada kelas Java Matcher digunakan untuk mendapatkan nilai seterusnya bagi subrentetan rentetan dengan indeks permulaan rentetan berkumpulan.

Contoh:

Atur cara ini menunjukkan pengumpulan rentetan diikuti dengan mencari rentetan pemadanan berikutnya untuk dipadankan dengan indeks permulaan ungkapan biasa.

Kod:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regx_Pttrn4 {
public static void main(String[] args) {
String reg_txt_exprssion    =
"This text needs to be done " +
"with some careful attention 'done'.";
String string_grouping = "done";
Pattern pattern_l = Pattern.compile(string_grouping);
Matcher matcher_l = pattern_l.matcher(reg_txt_exprssion);
int count = 0;
while(matcher_l.find()) {
count++;
System.out.println("Matching_context: " + count + " : "
+ matcher_l.start());
}
}
}

Output:

Java Match

6. public int end() dan int end(dalam kumpulan)

Kaedah ini digunakan untuk mengembalikan indeks penamat subrentetan corak rentetan berikutnya yang dipadankan.

Contoh:

Atur cara ini digunakan untuk menunjukkan kaedah int end (dalam kumpulan) kelas Java Matcher.

Kod:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regx_Pattrn5 {
public static void main(String[] args) {
String Expression    =
"Some special substring characters and escape characters need to be searched for. " +
"that to get the number of hits on the given expression of the text 'to'.";
String string_Pattrn = "to";
Pattern pattern_f = Pattern.compile(string_Pattrn);
Matcher matcher_f = pattern_f.matcher(Expression);
int count = 0;
while(matcher_f.find()) {
count++;
System.out.println("match_found: " + count + " : "
+ matcher_f.end());
}
}
}

Output:

Java Match

7. public int groupCount

Kaedah ini digunakan untuk mengembalikan kiraan kumpulan yang hadir sebagai satu set ungkapan biasa selepas membandingkan subrentetan padanan ungkapan reg.

Contoh:

Atur cara ini menunjukkan kaedah kiraan kumpulan int kelas Java Matcher.

Kod:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regx_Pattrn_6 {
public static void main(String[] args) {
String run_Exp  = " I am fond of eating delicious and yummy food everythime, and my mom is also fond of cooking that," +
" and dad also wants to taste the yummy food.";
String patternString1 = "(fond) (.+?) ";
Pattern pattern_s = Pattern.compile(patternString1);
Matcher matcher_s = pattern_s.matcher(run_Exp);
while(matcher_s.find()) {
System.out.println("matching_found_present: " +  "count:"+ matcher_s.group(1) +
" "       + matcher_s.group(2));
}
}
}

Output:

Java Match

8. public boolean lookingat()

As part of the matcher class, this method only tries to match the beginning of the text, not the entire text, which means, unlike the matcher class, which considers the entire regular expression for matching and result.

Example:

This program demonstrates the boolean lookingat() method of the Java Matcher class.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regx_Pattrn_7 {
public static void main(String[] args) {
String String_expr = "An expression to search and match the string pattern " + "make a search for the pattern.";
String String_ptrn = "pattern";
Pattern pattern_k = Pattern.compile(String_ptrn, Pattern.CASE_INSENSITIVE);
Matcher matcher_k = pattern_k.matcher(String_expr);
System.out.println("currently_looking_At = " + matcher_k.lookingAt());
System.out.println("currently_matches   = " + matcher_k.matches());
}
}

Output:

Java Match

9. public Matcher appendReplacement()

This method is used to replace the set of text in the regular expression and then append that input string into the string buffer. It keeps a check on the string buffer what is being copied and what is needed to be replaced.

Example:

This program demonstrates the Matcher appendReplacement() method of Java Matcher.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regex_Pttrn_8 {
public static void main(String[] args) {
String sm_txt  =  "I love to read books of harry potter, and i also love to read books of JK Rowling" +   " and My favourite writer writes all fiction books.";
String String_ptrn1 = "((books) (.+?)) ";
Pattern pattern_o = Pattern.compile(String_ptrn1);
Matcher matcher_o = pattern_o.matcher(sm_txt);
StringBuffer stringBuffer = new StringBuffer();
while(matcher_o.find()){
matcher_o.appendReplacement(stringBuffer, " fiction books ");
System.out.println(stringBuffer.toString());
}
}
}

Output:

Java Match

10. public StringBuffer appendTail()

This method also behaves in a similar fashion with a difference that if the last match is found from the input text and is not yet copied to the string buffer, then it is needed to check for the required text and can append at the end of the expression and then can be copied into the buffer.

Example:

This program demonstrates the StringBuffer append Tail() method of Java Matcher.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regex_Pttrn_8 {
public static void main(String[] args) {
String sm_txt  =  "I love to read books of harry potter, and i also love to read books of JK Rowling" +  " and My favourite writer writes all fiction books.";
String String_ptrn1 = "((books) (.+?)) ";
Pattern pattern_p = Pattern.compile(String_ptrn1);
Matcher matcher_p = pattern_p.matcher(sm_txt);
StringBuffer stringBuffer = new StringBuffer();
while(matcher_p.find()){
matcher_p.appendReplacement(stringBuffer, " fiction books ");
System.out.println(stringBuffer.toString());
}
matcher_p.appendTail(stringBuffer);
System.out.println(stringBuffer.toString());
}
}

Output:

Java Match

11. public String replaceAll()

As its name suggests, the String replaceAll () method can replace all the found matches and matched groups with the regular expression.

Example:

This program demonstrates the String replaceAll() method of Java Matcher.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Java_Reg_Replace {
public static void main(String[] args) {
String one_ptrn    ="I want to have a cup of tea, and I also want to have a cup of coffe at the same time," +
" and also want to have toffee.";
String ptrn_ex_strng = "((cofee) (.+?)) ";
Pattern pattern1 = Pattern.compile(ptrn_ex_strng);
Matcher matcherb = pattern1.matcher(one_ptrn);
String replaceAll = matcherb.replaceAll("tea or coffee ");
System.out.println("replaceAll   = " + replaceAll);
}
}

Output:

Java Match

12. public String replaceFirst()

This method is used for replacing the string text from the beginning of the regular expression as soon as the first match gets hit.

Example:

This program demonstrates the replaceFirst() method of Java Matcher.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Java_Reg_Replace {
public static void main(String[] args) {
String one_ptrn    ="I want to have a cup of tea, and I also want to have a cup of coffe at the same time," + " and also want to have toffee.";
String ptrn_ex_strng = "((cofee) (.+?)) ";
Pattern pattern1 = Pattern.compile(ptrn_ex_strng);
Matcher matcherb = pattern1.matcher(one_ptrn);
String replaceAll = matcherb.replaceAll("tea or coffee ");
System.out.println("replaceAll   = " + replaceAll);
String replaceFirst = matcherb.replaceFirst("tea or coffee ");
System.out.println("replaceFirst = " + replaceFirst);
}
}

Output:

Java Match

13. public static String quoteReplacement()

It is a mediator method of all the replace methods and is used when the string and the characters in the string need to be replaced with the parameters passed as a replaced parameter.

Example:

This program demonstrates the String quoteReplacement() method of Java Matcher.

Code:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class reg_quote_replcment {
public static void main(String[] args) {
String reg_exprsn = "Welcome Everyone";
Pattern pattern_a = Pattern.compile(reg_exprsn);
String stringNeedsToMatch  = "Welcome evryone to the laerning portal of educba";
Matcher matcher_b = pattern_a.matcher(stringNeedsToMatch);
String stringToBeReplaced = "Welcome";
System.out.println(matcher_b .quoteReplacement(stringToBeReplaced));
}
}

Output:

Java Match

Conclusion

Java Matcher class is a class which is part of Java regex package and mainly deals with the regular expressions and its functioning with the other regular function at the index level, replacement methods and quotereplacement method. It has simplified the overall manipulation of the strings and characters of the string for regular expressions.

Atas ialah kandungan terperinci Java Match. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kelas Bersarang di JawaArtikel seterusnya:Kelas Bersarang di Jawa