正则表达式是形成搜索模式的字符序列。当您在文本中搜索数据时,可以使用此搜索模式来描述您要搜索的内容。
正则表达式可以是单个字符,也可以是更复杂的模式。
正则表达式可用于执行所有类型的操作文本搜索和文本替换运营。
Java没有内置的正则表达式类,但是我们可以导入java.util.regex
包与正则表达式一起使用。该包包含以下类:
Pattern
类 - 定义模式(在搜索中使用)Matcher
类 - 用于搜索模式PatternSyntaxException
类 - 指示正则表达式模式中的语法错误查明句子中是否出现单词"91xjr":
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("91xjr", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit 91xjr!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
}
}
// Outputs Match found
在此示例中,正在句子中搜索单词"91xjr"。
首先,使用以下命令创建图案Pattern.compile()
方法。第一个参数指示正在搜索哪个模式,第二个参数有一个标志来指示搜索应不区分大小写。第二个参数是可选的。
这个matcher()
方法用于搜索字符串中的模式。它返回一个 Matcher 对象,其中包含有关所执行的搜索的信息。
这个find()
如果在字符串中找到该模式,方法将返回 true,如果未找到,则返回 false。
标志在compile()
方法更改搜索的执行方式。这里有几个:
Pattern.CASE_INSENSITIVE
- 执行搜索时将忽略字母的大小写。Pattern.LITERAL
- 模式中的特殊字符不会有任何特殊含义,在执行搜索时将被视为普通字符。Pattern.UNICODE_CASE
- 与CASE_INSENSITIVE
标志也忽略英语字母表之外的字母的大小写第一个参数Pattern.compile()
方法就是模式。它描述了正在搜索的内容。
括号用于查找字符范围:
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 |
元字符是具有特殊含义的字符:
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 |
量词定义数量:
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 |
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!