Hướng dẫn Java

TRANG CHỦ Java Giới thiệu Java Java Bắt đầu Cú pháp Java Nhận xét Java Các biến Java Các kiểu dữ liệu Java Truyền kiểu Java Toán tử Java Chuỗi Java Toán Java Java Booleans Java Nếu ... Khác Chuyển đổi Java Java While Loop Java cho vòng lặp Ngắt / Tiếp tục Java Mảng Java

Phương thức Java

Phương thức Java Các tham số phương pháp Java Nạp chồng phương pháp Java Phạm vi Java Đệ quy Java

Các lớp Java

Java OOP Các lớp / đối tượng Java Thuộc tính lớp Java Phương thức lớp Java Trình tạo Java Các công cụ sửa đổi Java Đóng gói Java Gói / API Java Kế thừa Java Đa hình Java Các lớp bên trong Java Tóm tắt Java Giao diện Java Java Enums Đầu vào của người dùng Java Ngày Java Java ArrayList Java LinkedList Java HashMap Java HashSet Trình lặp lại Java Các lớp Java Wrapper Các trường hợp ngoại lệ của Java Java RegEx Chủ đề Java Java Lambda

Xử lý tệp Java

Tệp Java Java Tạo / Viết tệp Java đọc tệp Java Xóa tệp

Java Cách thực hiện

Thêm hai số

Tham khảo Java

Từ khóa Java Phương thức chuỗi Java Phương pháp toán học Java

Ví dụ về Java

Ví dụ về Java Trình biên dịch Java Bài tập Java Java Quiz Chứng chỉ Java


Biểu thức chính quy trong Java


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

Biểu thức chính quy là một chuỗi các ký tự tạo thành một mẫu tìm kiếm. Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng mẫu tìm kiếm này để mô tả những gì bạn đang tìm kiếm.

Biểu thức chính quy có thể là một ký tự đơn hoặc một mẫu phức tạp hơn.

Biểu thức chính quy có thể được sử dụng để thực hiện tất cả các loại hoạt động tìm kiếm văn bản và thay thế văn bản .

Java không tích hợp sẵn lớp Biểu thức chính quy, nhưng chúng ta có thể nhập java.util.regex gói để làm việc với biểu thức chính quy. Gói này bao gồm các lớp sau:

  • Pattern Lớp - Xác định một mẫu (được sử dụng trong tìm kiếm)
  • Matcher Lớp - Được sử dụng để tìm kiếm mẫu
  • PatternSyntaxException Lớp - Chỉ ra lỗi cú pháp trong một mẫu biểu thức chính quy

Thí dụ

Tìm hiểu xem có bất kỳ sự xuất hiện nào của từ "w3schools" trong một câu:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

Giải thích ví dụ

Trong ví dụ này, Từ "w3schools" đang được tìm kiếm trong một câu.

Đầu tiên, mẫu được tạo bằng Pattern.compile()phương pháp này. Tham số đầu tiên cho biết mẫu nào đang được tìm kiếm và tham số thứ hai có cờ để chỉ ra rằng tìm kiếm phải không phân biệt chữ hoa chữ thường. Tham số thứ hai là tùy chọn.

Phương matcher()thức này được sử dụng để tìm kiếm mẫu trong một chuỗi. Nó trả về một đối tượng Matcher chứa thông tin về tìm kiếm đã được thực hiện.

Phương find()thức trả về true nếu mẫu được tìm thấy trong chuỗi và false nếu không được tìm thấy.



Cờ

Các cờ trong compile()phương thức thay đổi cách thực hiện tìm kiếm. Dưới đây là một vài trong số họ:

  • Pattern.CASE_INSENSITIVE- Trường hợp các chữ cái sẽ bị bỏ qua khi thực hiện tìm kiếm.
  • Pattern.LITERAL- Các ký tự đặc biệt trong mẫu sẽ không có ý nghĩa đặc biệt nào và sẽ được coi như các ký tự thông thường khi thực hiện tìm kiếm.
  • Pattern.UNICODE_CASE- Sử dụng nó cùng với CASE_INSENSITIVElá cờ để bỏ qua trường hợp các chữ cái nằm ngoài bảng chữ cái tiếng Anh

Mẫu biểu thức chính quy

Tham số đầu tiên của Pattern.compile()phương thức là mẫu. Nó mô tả những gì đang được tìm kiếm.

Dấu ngoặc nhọn được sử dụng để tìm một loạt các ký tự:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find one character NOT between the brackets
[0-9] Find one character from the range 0 to 9

Metacharacters

Metacharacters là những ký tự có ý nghĩa đặc biệt:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

Bộ định lượng

Bộ định lượng xác định các đại lượng:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

Lưu ý: Nếu biểu thức của bạn cần tìm kiếm một trong các ký tự đặc biệt, bạn có thể sử dụng dấu gạch chéo ngược (\) để loại bỏ chúng. Trong Java, dấu gạch chéo ngược trong chuỗi cần phải được thoát khỏi chính nó, vì vậy cần phải có hai dấu gạch chéo ngược để thoát khỏi các ký tự đặc biệt. Ví dụ: để tìm kiếm một hoặc nhiều dấu chấm hỏi, bạn có thể sử dụng biểu thức sau: "\\?"