[英]How to specify to Regex (in a LINQ Query) to only compare the start of a string?
我有以下代码:
string filterTerm = txtDocFilterTerm.Text.ToLower();
var regEx = new Regex(filterTerm);
//griQualifiedDocs is a grid
//storage.QualifiedDocs is the master/original collection
griQualifiedDocs.ItemsSource = storage.QualifiedDocs
.Where(item => regEx.IsMatch(item.DocName.ToLower()))
.ToList();
此查询将返回与filterterm匹配的所有字符串,无论它在字符串中的位置如何。 如何限制它,以便仅对字符串的开头运行正则表达式?
例如,如果过滤器为“ Jones”,则当前代码将返回“ Joe Jones”和“ Jonesy Smith”。 我只想退还“乔尼·史密斯”
TIA。
使用“ ^”锚定到字符串的开头。
var regEx = new Regex("^" + filterTerm);
为什么不使用它(假设您没有传入正则表达式):
griQualifiedDocs.ItemsSource = storage.QualifiedDocs
.Where(item =>item.DocName.ToLower().StartsWith(filterTerm))
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.