【发布时间】:2013-04-28 00:23:50
【问题描述】:
我想匹配两个字符串之间的文本,但是起始字符串有严格的边界条件。
示例输入:
start
From: h
From:b
xyz
Subject:
end
我需要在From: 和Subject: 之间进行匹配。
如果我将 (From:.*).*(Subject:) 与 dotall 一起使用,它会产生
From: h
From:b
xyz
Subject:
但我只需要
From:b
xyz
Subject:
因为起始字符串有严格的边界条件。这是必要的,因为起始字符串可以在文档中的任何位置,然后上面的正则表达式将匹配一个大文本而不是几行。
%%%%%%%%%%%% 问题重新定义 %%%%%%%%%%%%%% 我有需要匹配的文本:
From:<any text>
To:<any text>
Subject:<any text>
要注意的是:所有三个组件都可以在一行中,可以由一个换行符分隔,或者可以由 2 个换行符分隔...在所需匹配之前和之后有文本,其中可能包含 From:<any text> ,这就是为什么我需要严格的界限。
【问题讨论】:
-
你不断地重新定义你的问题和你想要匹配的文本。这将贬低您最初创建此问题时发布的旧答案。请坚持您的原始问题,或在创建问题时尽可能清楚地说明问题。
-
对于给您带来的不便,我深表歉意,但我认为我没有更改问题或所需的模式。在我最初的问题中,我有两次
From:,因为它是实际的文本。在编辑中,我已经提到了我到底需要什么,并声明在所需的模式之前和之后都可以存在任何东西。跨度> -
另外,我添加了评论
%%%% problem redefined %%%%,因为当两个人发布解决方案并且两者都不正确时,我认为我不够清楚来描述这个问题。这就是为什么我重新定义了这个问题,希望能更好地理解这个问题。我并不是要混淆任何人。如果我这样做了,我很抱歉。