正则表达式以提取标题

时间:2019-02-22 11:59:55

标签: regex

我必须从文本文件中提取标题。

基本上,我必须将HOST:MAIL:之前的所有内容提取为Title

正则表达式:

(?:(?<title>.*))(MAIL:|HOST:)

示例文字:

TITLE MSG  HOST:HOSTNAME  MAIL:a@b.com
TITLE sqlChecks [21/02/2019-22:00]:  MAIL:a@b.com HOST:HOSTNAME

请参见current regex DEMO

2 个答案:

答案 0 :(得分:1)

您可以使用

(?<title>.*?)(?:(?P<mail>MAIL:.*)|(?P<host>HOST:.*))

请参见regex demo

详细信息

  • (?<title>.*?)-组“标题”:除换行符以外的任何0+个字符,并且尽可能少
  • (?:(?P<mail>MAIL:.*)|(?P<host>HOST:.*))-与以下任意一项匹配的非捕获组:
    • (?P<mail>MAIL:.*)-组mailMAIL:和该行的其余部分
    • |-或
    • (?P<host>HOST:.*)-组hostHOST:和该行的其余部分

答案 1 :(得分:0)