Biểu thức chính quy 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ẫu tìm kiếm. Khi bạn tìm kiếm dữ liệu trong 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 có lớp Biểu thức chính quy tích hợp sẵn, nhưng chúng ta có thể nhập gói java.util.regex
để làm việc với các biểu thức chính quy. Gói này bao gồm các lớp sau:
- Lớp
Pattern
- Xác định mẫu (được sử dụng trong tìm kiếm) - Lớp
Matcher
- Được sử dụng để tìm kiếm mẫu - Lớp
PatternSyntaxException
- Chỉ ra lỗi cú pháp trong mẫu biểu thức chính quy
Ví dụ
Tìm hiểu xem từ "w3schools" có xuất hiện trong câu nào không:
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
Ví dụ giải thích
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 phương thức Pattern.compile()
. 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ờ để cho biết rằng tìm kiếm không phân biệt chữ hoa chữ thường. Tham số thứ hai là tùy chọn.
Phương thức matcher()
được sử dụng để tìm kiếm mẫu trong 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 thức find()
trả về true nếu tìm thấy mẫu trong chuỗi và trả về false nếu không tìm thấy mẫu đó.
Cờ
Các cờ trong phương compile()
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 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ó bất kỳ ý 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 cờCASE_INSENSITIVE
để 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 phương thức Pattern.compile()
là mẫu. Nó mô tả những gì đang được tìm kiếm.
Dấu ngoặc đượ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 |
Siêu ký tự
Siêu ký tự 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 |
định lượng
Bộ định lượng xác định số 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 |