帮助做一些简单的正则表达

时间:2010-05-07 16:13:49

标签: c# regex

我需要reg表达是什么让这个“123.12312” - > “123.32”,或“23.323” - > c#中的“23.32”。点后必须只有2位数 :)

4 个答案:

答案 0 :(得分:2)

假设您正在解析一个字符串,并且该点后面至少有两位数字:

/[0-9]+\.[0-9]{2}/

答案 1 :(得分:0)

我知道你在问一个正则表达式,但这似乎更适合Double.TryParse,然后是正确的格式化。

答案 2 :(得分:0)

您是否需要使用正则表达式?我认为做String.Format("{0:0.00}", double)之类的事情会更好。您可以在http://www.csharp-examples.net/string-format-double/

找到一些有用的格式示例列表

答案 3 :(得分:0)

我真的不知道正则表达式如何在C#中运行,但这是我的正则表达式

([0-9]+)(?:\.([0-9]{1,2})|)[0-9]*

组1将获得该点之前的部分,组2(如果存在)将给出该点后面的部分(2位数长)

此处的代码将生成字符串中的所有匹配项:

StringCollection resultList = new StringCollection();
try {
    Regex regexObj = new Regex(@"([0-9]+)(?:\.([0-9]{1,2})|)[0-9]*", RegexOptions.Singleline);
    Match matchResult = regexObj.Match(subjectString);
    while (matchResult.Success) {
        resultList.Add(matchResult.Value);
        matchResult = matchResult.NextMatch();
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}