2013-01-31 28 views
2

我有一个简单的问题:我的长文本充满了:“text:value; text:value; ...”。 我的问题是你如何获得所有“价值”之间:和;匹配冒号和分号之间的值

我半正确的模式是(?): “文本:(。*);.文字:”

有人能告诉我一个更好的办法?

+1

分割字符串 ';'然后根据':' – karthikr

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

我知道这种方式,但不应该使用它。请不要问为什么:) – HotTeaLover

回答

3

这是您正在搜索的正则表达式:

text:([^;]*); 

[^;]匹配一切,但分号。

+0

它的工作原理,谢谢! :) – HotTeaLover

+0

然后你会将我的答案标记为正确答案(左边的大勾)吗?如果他们发现你不接受答案,Stackoverflow上的人不会回答你的问题;) – Rudolf

2

图样:\w+:(?<value>\w+);

Regex pattern = new Regex(@"\w+:(?<value>\w+);"); 

foreach (Match match in pattern.Matches("text:bar;text:foo;")) 
    Console.WriteLine(match.Groups["value"].Value); 

打印:根据

bar 
foo