簡體   English   中英

正則表達式匹配字符串並排除其他所有內容,直到換行

[英]Regex to match a string and exclude everything else until a new line

這個解決方案在某種程度上解決了我的問題,但是需要排除Ordernr之后的任何字符,直到回車(換行)

  1. 21Sid1
  2. Ordernr
  3. E17222
  4. 通過
  5. 賣家

我正在使用ordernr [\\ r \\ n] +([[^ \\ n \\ r] +)來匹配上述ordernrE17222 對於以下情況,我想做同樣的事情:

  1. 21Sid1
  2. Ordernr跳過所有內容到新行
  3. E17222
  4. 通過
  5. 賣家

找到Ordernr時,基本上將所有內容排除在外,直到出現新的一行並抓住下一行

應該這樣做:

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

由於.*匹配行終止符以外的所有內容,因此我們使用.*匹配新行之后匹配Ordernr之后的所有內容,然后使用新行,並再次使用(.*)捕獲下一行的evrything。

現場演示在這里

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

OUTPUT:

第1組:E17222

這里檢查結果。

編輯

要使此正則表達式與您的點匹配所有約束,請嘗試以下操作:

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

在這里,我替換了點以匹配除換行以外的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM