查找正则表达式匹配后的文本
您已涉足正则表达式领域并遇到了特定需求:提取紧跟正则表达式匹配的文本特定的比赛,不包括比赛本身。让我们探讨一下如何实现这一点。
在您提供的代码中,初始模式“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中文网其他相关文章!