我想匹配兩個字符串之間的文本,但開始的字符串具有嚴格的邊界條件。Java正則表達式:匹配具有邊界條件的兩個字符串之間的文本
樣品輸入:
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>
問題在於:所有三個組件都可以在一行中,可以用一個換行符分隔,或者可以用兩個換行符分隔......在所需的匹配之前和之後可以包含From:<any text>
的文本,這就是爲什麼我需要嚴格的界限。
你留着重新定義你的問題,並要匹配的文本。這會貶低最初創建此問題時發佈的舊答案。請堅持您的原始問題,或者在創建問題時儘可能使問題清楚。 – syb0rg 2013-04-28 15:50:33
我很抱歉造成不便,但我想我沒有改變問題或想要的模式。在我原來的問題中,我有'From:'兩次,因爲它是實際的文本。在編輯中,我已經提到了我需要的東西,並且還聲明任何可能出現在所需模式之前和之後。 – user2200660 2013-04-29 17:52:32
另外,我添加的註釋'%%%%問題重新定義%%%%',因爲當兩個人張貼的解決方案,這兩個是不正確的,我想我還不夠清楚描述的問題。這就是爲什麼我重新定義了希望更好地理解問題的問題。我不打算混淆任何人。如果我這樣做,我很抱歉。 – user2200660 2013-04-29 17:54:53