我使用new Regex("(?m)^\S+ [A-Z]{1,3}$").IsMatch(sStringToCheck)检查多行字符串。
我的问题是,它似乎只验证了字符串的最后一行。
这份清单通过:
这个列表失败了:
但是,我希望两者都失败,因为每个都包含一个不匹配的行。
谢谢!
发布于 2013-08-12 15:09:49
bool match = sStringToCheck
.Split(new string[] {Environment.NewLine}, StringSplitOptions.None)
.Any(line => new Regex(@"^\S+ [A-Z]{1,3}$").IsMatch(line));会检查每一行。这就是你的目标吗?
发布于 2013-08-12 15:23:19
琼斯的回答是一种更好的方法,但为了彻底起见,一种非LINQ的方法是对每一行进行迭代,或者用你的总体答案来计算结果:
bool match = false;
foreach(string s in sStringToCheck.Split(new string[]{Environment.NewLine}, StringSplitOptions.None)){
match = match | new Regex("(?m)^\S+ [A-Z]{1,3}$").IsMatch(s);
}https://stackoverflow.com/questions/18190376
复制相似问题