在我的C#代码中,我有一个像这样的列表
public static List<string> Teachers_Group = new List<string>
{
"-RO-ANSATTE",
"-RO-GJESTEANSATTE"
};
我的linq查询中有一个where子句,用于检查
bool amITeacher = domainUser.Groups.Where(k => Helpers.Constants.Teachers_Group.Any(k.FullName.Contains)).Any();
现在我要检查要检查的字符串是否具有类似
的模式XXX-RO-ANSATTE
这意味着我需要检查组名是否也包含三个字母。我认为我需要使用正则表达式,但无法入门。
有帮助吗?
答案 0 :(得分:2)
我已将您的Linq表达式更改为使用Regex
bool amITeacher = domainUser.Groups.Where(k =>
Helpers.Constants.Teachers_Group.Any(t =>
Regex.IsMatch(k, @"^[A-Za-z0-9]{3}\" + t + "$")))
.Any();
答案 1 :(得分:0)
如果正则表达式是您要找的东西,那么您可以使用类似{{1}}
答案 2 :(得分:0)
以下内容似乎可以回答所有必要条件,而不会带来误报:
bool amITeacher = domainUser.Groups.Where(k => Helpers.Constants.Teachers_Group.Any(x => Regex.IsMatch(x, "\\A[A-Z]{3}" + k))).Any();
基本上确保输入字符串的前缀恰好是3个大写英文字母。