Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Regex |如何瞄准/跳转到下一行或特定行?_Java_Regex - Fatal编程技术网

Java Regex |如何瞄准/跳转到下一行或特定行?

Java Regex |如何瞄准/跳转到下一行或特定行?,java,regex,Java,Regex,我目前正在学习如何使用正则表达式,但我不知道如何访问新行/特定行。 示例:我的文本输入如下所示: Problem 20 from 100 text for nothing TargetText Another Text 因此,我知道我可以通过以下方法获得第一行(问题20): 我的问题是:是否可以获取TargetText?或者这是我必须用Matcher类(Java)解决的问题吗?(您在问题和数字之间缺少一个空格)您可以匹配该行的其余部分,然后匹配整个下一行,捕获组中第三行的第一个单词 ^Prob

我目前正在学习如何使用正则表达式,但我不知道如何访问新行/特定行。 示例:我的文本输入如下所示:

Problem 20 from 100
text for nothing
TargetText Another Text
因此,我知道我可以通过以下方法获得第一行(问题20):

我的问题是:是否可以获取
TargetText
?或者这是我必须用Matcher类(Java)解决的问题吗?

(您在
问题
和数字之间缺少一个空格)您可以匹配该行的其余部分,然后匹配整个下一行,捕获组中第三行的第一个单词

^Problem\h+[0-9]{1,3}\b.*\R.*\R(\w+)
  • ^Problem\h+
    Match`Problem和字符串开头的1+空格
  • [0-9]{1,3}\b
    匹配1-3位数字和字边界以防止部分匹配
  • *\R.*\R
    将行的其余部分、换行符和相同的内容再次匹配
  • (\w+)
    组1中捕获1+个单词字符

示例代码

String regex = "^Problem\\h+[0-9]{1,3}\\b.*\\R.*\\R(\\w+)";
String string = "Problem 20 from 100\n"
+ "text for nothing\n"
+ "TargetText Another Text";

Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(string);

if (matcher.find()) {
    System.out.println(matcher.group(1));
}
输出

TargetText

问题和数字之间缺少空格。但是你可以匹配这一行的其余部分,然后是下一行,捕捉第三行的第一个单词<代码>^Problem\h+[0-9]{1,3}\b.\R.\R(\w+)
TargetText