gpt4 book ai didi

java - 正则表达式匹配字符串并排除其他所有内容,直到出现新行

转载 作者:行者123 更新时间:2023-12-02 12:07:24 25 4
gpt4 key购买 nike

This解决方案在某种程度上解决了我的问题,但需要排除 Ordernr 之后的任何字符,直到回车(换行)

  1. 21Sid1
  2. 订单
  3. E17222
  4. 作者
  5. 卖家

我使用 ordernr[\r\n]+([^\n\r]+) 来匹配 ordernr 和 <上面的strong>E17222。我想对下面的情况做同样的事情:

  1. 21Sid1
  2. Ordernr 跳过所有内容到新行
  3. E17222
  4. 作者
  5. 卖家

当发现 Ordernr 时,基本上排除所有内容,直到出现新行并抓取下一行

最佳答案

这应该做:

/Ordernr.*[\r\n]+(.*)/g

由于 .* 匹配除行终止符之外的所有内容,因此我们使用 .* 匹配 Ordernr 之后除换行符之外的所有内容,然后新行,我们再次使用 (.*) 捕获下一行的所有内容。

现场演示 here

这是 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");
}

输出:

group 1: E17222

查看结果here .

编辑

要使此正则表达式与您的点匹配所有约束一起使用,请尝试以下操作:

/Ordernr[^\n\r]*[\r\n]+([^\n\r]*)/g

这里我替换了点以匹配除新行之外的所有内容。

关于java - 正则表达式匹配字符串并排除其他所有内容,直到出现新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46796502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com