在涉及字符时从字符串中获取值

时间:2013-03-28 20:41:29

标签: c# regex

我有一个字符串,我希望从中获取值“12345”和“123.5”并将其放入集合中,以便我可以循环并使用它做一些事情。有人可以帮忙吗?

string test = "Hello World [12345] - [123.5]"

string anothertest = "Hello World [A12345 (05,00,45)] [518.6Z] [51.5]"

我想要“A12345”“518.6Z”“51.5”

2 个答案:

答案 0 :(得分:2)

使用以下正则表达式:

\[(\d+\.?\d+)\]

你需要小组(1)。

也许这个半伪也会有帮助...

Regex expression = new Regex(@"\[(\d+\.?\d+)\]");
var results = expression.Matches(test);
foreach (Match match in results)
{
    //do whatever you want.
}

答案 1 :(得分:0)

对于您编辑的第二部分:

\[(\d*\w*\.?\d*\w*)(?!\()

“?!”是一个消极的先行断言,在这种情况下意味着“匹配之前的东西没有跟着(”