2014-01-23 67 views
-1

之間特定的文本我有一個多行文本字符串,下面給出:C#正則表達式多行 - 需要去模式

Policy NO: 236511116, Jhon Mark 
Commencement Date: 28/02/2001 Age: 24, (—) 
Plan: - Life Plan (r.No. 111) 
Policy Term: 20 (Premium payment term : 15) 
Premium (JIs.)t - 1,531.00 payable Quarterly 

我期待提取下列文字:該前

236511116 - Its a number which comes after text "Policy NO:" and before (,) 

Jhon Mark - which comes after "," and before line break and its last word in 1st line 

20 - which comes after "Policy Term: " and before "(" 

15 - which comes after "term : " and before ")" 

1,531.00 - which comes after "Premium some chars - " and before "payable" 

和文本固定後永遠不會改變,因此可以將它們用作搜索模式。要搜索的文本可以更改,並且可以達到任意長度。

請幫忙,忽略我以前關於RegEx的問題。

感謝

+3

所以...你想我們做你的工作?你試過什麼了? – Sylverdrag

+0

尋找一個解決方案,我是一個PHP的傢伙,正在努力解決一個小型的C#實用程序問題和RegEx總是竊聽我很多! – seopower

+0

尋找解決方案建議您嘗試了一些東西。如果你確實嘗試了,我們可以幫助你找到你在做錯什麼。如果我們只是提供解決方案,不僅下一次你會迷失方向,還會在代碼庫中放入一段你不明白的代碼,如果格式不對,你會得到一些無法修復的錯誤改變一點:如果有人在「術語」之後糾正額外的空間會發生什麼? Oups,由Floris友善提供的魔術配方將失敗,搜索將返回空。它的工作原理...直到有人修復了這個錯字。花時間理解,這是你的工作。 – Sylverdrag

回答

0

下面的正則表達式提取所有你之後的元素:

(?:Policy NO: (\d+), (.*)$|Policy Term: (\d+) .*Premium payment term : (\d+)|Premium .* ([0-9,.]+) payable .*) 

您可以在工作中看到這一點,有一個解釋,在http://regex101.com/r/iN8oB5

讓我知道如果你還在檢查鏈接後有問題。

+0

感謝您的幫助。我試過這個解決方案: Regex m = new Regex(「(?:Policy NO:(\\ d +),(。*)$ | Policy Term:(\\ d +)。 \ d +)| Premium。*([0-9,。] +)應付。*)「,RegexOptions.Multiline); 但它返回3個值: 「政策號:236511116,Jhon Mark」,「236511116」,「Jhon Mark」 – seopower