如果要在更精确的位置(例如在行的开头或结尾)查找模式的出现,则可以使用边界匹配器。当您要匹配特定边界时,边界匹配器是正则表达式中的特殊序列。
列表如下:
匹配器 | 匹配 |
---|---|
^ | 行的开始 |
$ | 行尾 |
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.