Java获得正则表达式匹配后的文本
我是使用Regex的新手,我已经看过很多教程,但没有找到适合我想要做的事情的教程,
我想搜索某些内容,但返回其后的所有内容,而不是搜索字符串本身
例如“ 一些很棒的la脚的句子 ”
搜索“ 句子 ”
返回“ 真棒 ”
任何帮助将非常感激
到目前为止,这是我的正则表达式
sentence(.*)
但它返回:很棒的句子
Pattern pattern = Pattern.compile("sentence(.*)");Matcher matcher = pattern.matcher("some lame sentence that is awesome");
boolean found = false;
while (matcher.find())
{
System.out.println("I found the text: " + matcher.group().toString());
found = true;
}
if (!found)
{
System.out.println("I didn't find the text");
}
回答:
你可以按照注释中的要求使用“只是正则表达式”来执行此操作:
(?<=sentence).*
(?<=sentence)
是肯定的断言。这会在字符串中的某个位置进行匹配,即在文本之后的某个位置进行匹配,sentence
而不会使该文本本身成为匹配的一部分。因此,(?<=sentence)
.*
将匹配之后的任何文本sentence。
这是正则表达式的一个不错的功能。但是,在Java中,这仅适用于有限长度的子表达式,即(?<=sentence|word|(foo){1,4})
合法,但(?<=sentence\s*)
不是。
以上是 Java获得正则表达式匹配后的文本 的全部内容, 来源链接: utcz.com/qa/411687.html