Java 正则表达式匹配字符串并排除所有其他内容,直到出现新行
解决方案在某种程度上解决了我的问题,但需要排除Ordernr之后的任何字符,直到回车(新行)Java 正则表达式匹配字符串并排除所有其他内容,直到出现新行,java,regex,Java,Regex,解决方案在某种程度上解决了我的问题,但需要排除Ordernr之后的任何字符,直到回车(新行) 21Sid1 Ordernr E17222 借 卖方 我正在使用ordernr[\r\n]+([^\n\r]+)匹配上面的ordernr和E17222。 对于以下情况,我也要这样做: 21Sid1 Ordernr跳过所有内容直到新行 E17222 借 卖方 基本上在找到Ordernr时排除所有内容,直到找到新行并抓取下一行 /Ordernr.[\r\n]+(.*)/g 因为,*匹配除行终止符之外的所有内
/Ordernr.[\r\n]+(.*)/g
因为,*
匹配除行终止符之外的所有内容,所以我们在Ordernr之后匹配所有内容,除了使用*
的新行之外,然后是新行,我们再次使用(*)
捕获下一行的所有内容
现场演示
以下是Java中的示例代码:
String line = "21Sid1\nOrdernr Skip everything upto new line\nE17222\nBy\nSeller";
Pattern pattern = Pattern.compile("Ordernr.*[\r\n]+(.*)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
}else{
System.out.println("No match found");
}
输出:
第一组:E17222
检查结果
编辑
要使此正则表达式与您的点匹配所有consraint一起工作,请尝试以下操作:
/Ordernr[^\n\r]*[\r\n]+([^\n\r]*)/g
在这里,我替换了点以匹配除新行以外的所有内容。Java或Javascript?使用选项来澄清/纠正您的问题(如更新标记)。这是针对Java的。更新!我想匹配Ordernr并跳过所有内容,直到行结束符,然后在下一行捕获所有内容目前,它与Ordernr行上的所有内容都匹配。我们可以只匹配Ordernr并跳过所有内容直到新行。它不是匹配所有内容,在正则表达式中有一个叫做捕获的东西,用java签出代码和输出:这就是正在发生的事情。我正试图在JIRA的一个现场处理器中使用它。当我在JAVA和JavaScript的实时演示站点上尝试它时,它就可以工作了。然而,当我在插件上尝试它时,它捕获了最后一行。它之所以这样做是因为点匹配所有用法。所以基本上。*一直匹配到最后,并捕获最后一行而不是下一行。有什么办法可以解决这个问题吗?这是屏幕截图,你在说什么插件?它是JIRA的JEMH,用于正则表达式。