2016-11-11 112 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