繁体   English   中英

正则表达式多行并捕获之间的特定文本

[英]Regex multiple lines and capture specific text between

我有以下字符串(除了第一行,这是我的起点):

Action 0100: Register: 
2021.01.05 14:38:08 CET 
REF: 12345678910
FAK: Street,ZIP

===========================

我想捕获日期行到等号行之间的所有内容。

REF: 12345678910
FAK: Street,ZIP

起初我只有一行时尝试过类似的方法,但是当我同时有 REF 和 FAK 行时,我需要更好的东西:

(?:.+Register.+\n.+\n)(.+)

我想将所有内容都捕获到一个组中。 因为我需要验证是否还有其他行然后是 REF 或 FAK

您可以使用

Register(?:[^\r\n]*\r?\n){2}([^\r\n]+(?:\r?\n[^\r\n]+)*)

详情

  • Register - 一个固定的字符串
  • (?:[^\r\n]*\r?\n){2} - 除了 CR 和 LF 之外的零个或多个字符的两个序列,然后是一个可选的 CR,后跟一个 LF 字符
  • ([^\r\n]+(?:\r?\n[^\r\n]+)*) - 第 1 组:
    • [^\r\n]+ - CRLF 以外的一个或多个字符
    • (?:\r?\n[^\r\n]+)* - CLRF 或 LF 行结束序列的零次或多次重复,然后是 CR 和 LF 以外的一个或多个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM