我有以下输入:
void Main()
{
string inputData = "37.7879\r\n-122.3874\r\n40.7805\r\n-111.9288\r\n36.0667\r\n-115.0927\r\n37.7879\r\n-122.3874";
// string[] inputLines = Regex.Split(inputData, @"\r\n");
string[] inputLines = Regex.Split(inputData, @"(\r)?\n");
Console.WriteLine("The size of the list is: {0}", inputLines.Length);
bool results = inputLines.All(IsValidNumber);
foreach (string line in inputLines)
{
Console.WriteLine("{0} is: {1}", line, IsValidNumber(line));
}
}
// Define other methods and classes here
public bool IsValidNumber(string input)
{
Match match = Regex.Match(input, @"^-?\d+\.\d+$", RegexOptions.IgnoreCase);
return match.Success;
}
我正在尝试Regex.Split
on @"\r\n"
,如果我使用注释行,那么我会得到预期的结果。如果我使用未注释的,我不会得到我期望的结果。如果"\r"
不存在(可能是也可能不是),我几乎 100% 肯定我的正则表达式是正确的。
我期待来自 inputData 的 8 个值,我试图验证它们是否都是有效数字。
有没有可能我"(\r)?"
的工作不正常?如果是这样,我错过了什么?