[英]Regex to match a string and exclude everything else until a new line
這個解決方案在某種程度上解決了我的問題,但是需要排除Ordernr之后的任何字符,直到回車(換行)
我正在使用ordernr [\\ r \\ n] +([[^ \\ n \\ r] +)來匹配上述ordernr和E17222 。 對於以下情況,我想做同樣的事情:
找到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.