1
どうしたのですか?私は2つのグループを設定する()を持っており、sExtractNumberは "0.234"と ""の値を持つグループを作成することを期待していますが、どちらも.Value = "0.234"ですか?C#でRegEx.Matchを使って式を分割する方法
const string REGEX_NUMBER = "[0-9\\.-]*";
static readonly Regex sExtractNumber = new
Regex(string.Format("^({0})(.*)$", REGEX_NUMBER),
RegexOptions.Singleline | RegexOptions.Compiled);
-
[Test] public void ParseNumber()
{
double num;
string rest;
Assert.True(KbParser.ExtractNumber("0.234", out num, out rest));
Assert.AreEqual(0.234, num, 0.0001);
Assert.AreEqual(rest, "in"); // fails . Rest == "0.234"
Assert.True(KbParser.ExtractNumber("0.234in", out num, out rest));
Assert.AreEqual(0.234, num, 0.0001);
Assert.AreEqual(rest, "in");
}
-
public static bool ExtractNumber(string name, out double number, out string rest)
{
Match m = sExtractNumber.Match(name);
string numbertext = m.Groups[0].Value;
rest = m.Groups[1].Value;
return double.TryParse(numbertext, out number);
}
とする必要があります。 –