Computer >> Máy Tính >  >> Lập trình >> Java

Biểu thức chính quy trong Java là gì?

Biểu thức chính quy là một chuỗi ký tự xác định / tạo thành một mẫu để tìm kiếm văn bản đầu vào. Một biểu thức chính quy có thể chứa một hoặc nhiều ký tự, bằng cách sử dụng một biểu thức chính quy, bạn có thể tìm kiếm hoặc thay thế một chuỗi.

Java cung cấp gói java.util.regex để đối sánh mẫu với biểu thức chính quy. Gói này chứa ba lớp mà chúng là -

  • Lớp mẫu: Mẫu lớp của gói này là một đại diện đã biên dịch của một biểu thức chính quy. Để đối sánh một biểu thức chính quy với một Chuỗi, lớp này cung cấp hai phương thức:
  • biên dịch (): Phương thức này chấp nhận một Chuỗi đại diện cho một biểu thức chính quy và trả về một đối tượng của đối tượng Mẫu.
  • trình đối sánh (): Phương thức này chấp nhận một giá trị Chuỗi và tạo một đối tượng đối sánh khớp với Chuỗi đã cho với mẫu được đại diện bởi đối tượng mẫu hiện tại.
  • Người đối sánh lớp của gói java.util.regex là một công cụ thực hiện các hoạt động đối sánh. Để tìm giá trị phù hợp, bạn cần sử dụng hai phương thức của lớp này, đó là:
  • find (): Phương thức này trả về true nếu thao tác so khớp được đại diện bởi đối tượng hiện tại thành công, phương thức khác trả về false.
  • nhóm () :Phương thức này chấp nhận một giá trị số nguyên đại diện cho một nhóm cụ thể và trả về chuỗi được nhóm được chỉ định nắm bắt trong hoạt động đối sánh.
  • PatternSyntaxException - Đối tượng PatternSyntaxException là một ngoại lệ không được kiểm tra chỉ ra lỗi cú pháp trong một mẫu biểu thức chính quy.

Ví dụ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main( String args[] ) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input string: ");
      String input = sc.nextLine();
      String regex = "[^\\p{ASCII}]";  
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      //Creating an empty string buffer
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {          
          matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Result: \n"+ sb.toString() );
   }
}

Đầu ra

Enter input string:
whÿ do we fall
Result:
wh do we fall

Ví dụ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartExample {
   public static void main(String[] args) {      
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();

      String regex = "[t]";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);  
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      int count =0;
      while (matcher.find()) {
         int start = matcher.start();
         System.out.println(start);
      }
   }
}

Đầu ra

Enter input text:
Hello how are you welcome to Tutorialspoint
26
31
42