Java如何在正则表达式中进行边界匹配?

如果要在更精确的位置(例如在行的开头或结尾)查找模式的出现,则可以使用边界匹配器。当您要匹配特定边界时,边界匹配器是正则表达式中的特殊序列。

列表如下:

匹配器匹配
^行的开始
$行尾
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.