繁体   English   中英

如何指定正则表达式(在LINQ查询中)以仅比较字符串的开头?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM