首頁 > Java > java教程 > 主體

Java 比賽

王林
發布: 2024-08-30 16:00:27
原創
737 人瀏覽過

Java Matcher 類別是 Java Regex 套件的類別之一。 Java Matcher 類別和模式是 Regex 套件的一部分,它提供了為正規表示式建立類別和介面的工具。它有助於找到正則表達式的操作和字元序列,然後與其他正則表達式的字元序列進行比較以匹配。一旦配對成功,它就會建立一個稱為 MatchResult 介面的介面。正規表示式引擎用於執行字元序列匹配和建立介面的定義場景。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

Java 匹配器類別方法

下面給的是類別方法:

  • 公共布爾匹配()
  • 公共布爾查找()
  • 公共布林查找(int start)
  • 公有字串組()
  • public int start() 和 int start(int group)
  • public int end() 和 int end(int group)
  • public int groupCount()
  • 公共布林型lookingAt()
  • 公共匹配器appendReplacement()
  • public StringBufferappendTail()
  • 公有字串replaceAll()
  • 公有字串replaceFirst()
  • public static String quoteReplacement()

1.公共布爾匹配()

boolean matches() 是 Java Matcher 類別中的方法,用於測試正規表示式是否與模式相符。

範例

此程式使用模式說明了 Java Matcher 類別的公用 boolean matches() 方法。

代碼:

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"));
}
}
登入後複製

輸出:

Java 比賽

2.公共布爾查找()

該方法是 matcher 類別的一部分,用於尋找並匹配下一個表達式,它可以匹配模式並可用於建立介面。

範例:

程式用於尋找並匹配正規表示式,以與模式進行匹配和比較,以建立介面。

代碼:

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");
}
}
}
}
登入後複製

輸出:

Java 比賽

3.公共布林查找(int start)

此方法用於尋找從開頭或結尾索引開始匹配正規表示式的方法。

範例:

程式示範了 boolean find(int start) 方法,該方法給出正規表示式的起始和結束索引。

代碼:

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");
}
}
}
}
登入後複製

輸出:

Java 比賽

4.公有字串組()

此方法是 Java Matcher 類別的一部分,該類別隨後傳回正規表示式的符合字串。

範例:

程式示範了 Java Matcher 類別的 String group() 方法,該方法嘗試在命中匹配字串後產生正規表示式的後續子字串。

代碼:

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));
}
}
}
登入後複製

輸出:

Java 比賽

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

int start() 和 int start(int group) 方法作為 Java Matcher 類別的一部分,用於取得分組字串的起始索引的字串子字串的後續值。

範例

程式示範了字串分組,然後尋找後續符合器字串以符合正規表示式的起始索引。

代碼:

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());
}
}
}
登入後複製

輸出:

Java 比賽

6. public int end() 與 int end(in group)

此方法用於傳回符合的後續字串模式的子字串的結束索引。

範例:

程式用來示範Java Matcher類別的int end(in group)方法。

代碼:

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());
}
}
}
登入後複製

輸出:

Java 比賽

7.公 int groupCount

此方法用於在比較正規表示式的符合子字串後傳回作為一組正規表示式出現的群組的計數。

範例:

程式示範了 Java Matcher 類別的 int 群組計數方法。

代碼:

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));
}
}
}
登入後複製

輸出:

Java 比賽

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 比賽

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 比賽

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 比賽

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 比賽

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 比賽

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 比賽

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.

以上是Java 比賽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!