我假设你解析了这一点文本文件的?您的问题对于输入的确切性质或您正在做的事情有点不清楚。以下内容使用Regex在文本行中查找名称和值,然后评估约束。
static void Main()
{
const string Test = @"MyField1 = 10293856
MyField1 = 72946392 MyField1 = 99999999 MyField1 = 12356642" ;
Regex exp = new Regex(@"^(?<Name>\w+)\s*=\s*(?<Value>\d{8})\s*$", RegexOptions.Multiline);
foreach(Match match in exp.Matches(Test))
{
string name = match.Groups["Name"].Value;
string value = match.Groups["Value"].Value;
if (value != "99999999")
{
Console.WriteLine("{0} = {1}", name, value);
}
}
}
这是真的接近你就有可能获得与表达,因为你不能找到8数字串,然后测试值,看它是否是所有的9
您还可以使用LINQ表达式做到这一点:
Regex exp = new Regex(@"^(?<Name>\w+)\s*=\s*(?<Value>\d{8})\s*$", RegexOptions.Multiline);
foreach(Match match in exp.Matches(Test).OfType<Match>().Where(m => m.Groups["Value"].Value != "99999999"))
...
您希望只有在看到字符串“MyField1 = 99999999”时才返回false? – CanSpice
领先的零 - 好或坏? –
'99999999'究竟有什么问题?这是确切的字符串吗? 8位重复数字?或任何数量的重复数字?你需要提供你正在寻找的实际模式。 – Brandon