我是使用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。
(?<=sentence)
sentence
*
这是正则表达式的一个不错的功能。但是,在Java中,这仅适用于有限长度的子表达式,即(?<=sentence|word|(foo){1,4})合法,但(?<=sentence\s*)不是。
(?<=sentence|word|(foo){1,4})
(?<=sentence\s*)