首页 >Java >java教程 >如何在正则表达式匹配后提取文本而不包含匹配文本?

如何在正则表达式匹配后提取文本而不包含匹配文本?

DDD
DDD原创
2024-11-07 09:51:03907浏览

How Can I Extract Text Following a Regex Match Without Including the Matching Text?

查找正则表达式匹配后的文本

您已涉足正则表达式领域并遇到了特定需求:提取紧跟正则表达式匹配的文本特定的比赛,不包括比赛本身。让我们探讨一下如何实现这一点。

在您提供的代码中,初始模式“sentence(.*)”准确匹配“sentence”,但它还捕获以下文本,从而生成“sentence that is Awesome” ”。为了仅隔离后续文本,我们将采用一种称为“正向回顾断言”的技术。

正向回顾断言

正向回顾断言 (?

(?<=sentence).*

Java 实现

要在 Java 中实现此模式,请按如下方式修改代码:

import java.util.regex.*;

public class RegexPostMatch {
    public static void main(String[] args) {
        String example = "Some lame sentence that is awesome";
        Pattern pattern = Pattern.compile("(?<=sentence).*");

        Matcher matcher = pattern.matcher(example);

        if (matcher.find()) {
            System.out.println("Text after 'sentence': " + matcher.group());
        } else {
            System.out.println("No match found");
        }
    }
}

修改后的代码将输出所需的结果:“太棒了。”

附加说明

在 Java 中,正向后向断言仅限于有限长度子表达式。这意味着像“(?

(?<=sentence\s+|\W+sentence)

以上是如何在正则表达式匹配后提取文本而不包含匹配文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn