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