如果要在更精确的位置(例如在行的开头或结尾)查找模式的出现,则可以使用边界匹配器。当您要匹配特定边界时,边界匹配器是正则表达式中的特殊序列。
列表如下:
| 匹配器 | 匹配 |
|---|---|
| ^ | 行的开始 |
| $ | 行尾 |
| b | 单词边界 |
| B | 非单词边界 |
| A | 输入的开始 |
| G | 上一场比赛的结束 |
| Z | 输入的结尾,但对于最终终止符(如果有) |
| z | 输入的结尾 |
一些例子:
^Java 将在任何行的开头找到Java单词
Java$ 将在任何行的末尾找到Java单词
\bJ..a\b将会找到以'J'和开头的单词'a'
package org.nhooo.example.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BoundaryMatcherDemo {
public static void main(String[] args) {
// 定义正则表达式以在行尾找到单词“ dog”。"dog" at the end of the line.
String regex = "dog$";
// 编译模式并获得匹配对象。
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(
"The quick brown fox jumps over the lazy dog");
// 查找每个匹配并打印
while (matcher.find()) {
System.out.format("Text \"%s\" found at %d to %d.%n",
matcher.group(), matcher.start(), matcher.end());
}
}
}该程序输出以下结果:
Text "dog" found at 40 to 43.