2016-11-11 114 views
-1

我需要一個正則表達式幫助.NET語言:需要幫助的正則表達式

例如,我有四個不同的文件下面一組數據:

START;MEG;DAT01-01;DAT02-10;100001-1001;SER1"END;MEG;5-0-2-1" 

START;MEG;DAT03-01;DAT02;100001-1001;SER1"END;MEG;5-0-32-1" 

START;MEG;DATA05;DAT02;100001-1001;SER1"END;MEG;5-0-2-21" 

START;MEG;DATA500A-01;DAT02;100001-1001;SER1"END;MEG;5-0-2-1" 

我總是需要第三捕獲列值由;分開,但-之前,因此,結果我應該相互上述文件得到的是

DAT01 
DAT03 
DATA05 
DATA5001A 
+0

它是否適用於Nintex工作流程?請精確,並讓我們知道你的嘗試。你有沒有直接訪問.NET代碼(C#,VB.NET等)?只是爲了確保:輸入是一個包含多個換行符的字符串? –

+0

@WiktorStribiżew'我有四個不同文件中的以下數據集',這意味着默認字符串沒有換行符(每個文件1行)。 –

+1

由於'START; MEG;'總是存在,所以'(?<= START; MEG;)。*?(?= [; - ])'應該可以工作:https://regex101.com/r/6Wr1ru/3 – nozzleman

回答

0

我不知道這是什麼將解決您的問題100%的時間,但它是一個開始:

((.+;){2}(([^-]*)(-.+)?;)(.+;){4}.+") 

組4包含您要提取的信息。 這是爲了看到它的工作,並在需要時改進它:https://regex101.com/r/6Wr1ru/1

+0

太好了。 ((。*;){2}(([^ - ] *)( - 。*)?;)(。*;){4}。*「)幾乎接近我所需要的。我讓這個表達式非貪婪,以便它在第一次出現時停止「。 – Nomdeplume