什么是Delphi MatchesMask函数的C#等价物?
C#.NET中Delphi MatchesMask
函数的等价物是什么? 我该如何使用它,以及我需要包含哪些命名空间参考?
MatchesMask
函数如帮助中所述:
指示文件名是否符合筛选字符串指定的格式。
调用MatchesMask以使用Mask参数检查Filename参数以描述有效值。 有效掩码由文字字符,集合和通配符组成。
每个文字字符必须匹配字符串中的单个字符。 与文字字符的比较不区分大小写。
每组以一个开括号([)开头,以一个右括号(]结束。 括号之间是集合的元素。 每个元素都是文字字符或范围。 范围由初始值,短划线( – )和最终值指定。 不要使用空格或逗号分隔集合的元素。 集必须匹配字符串中的单个字符。 如果字符与集合中的某个文字字符相同,或者如果它在集合中的某个范围内,则该字符与集合匹配。 如果字符与初始值,最终值匹配,或者在两个值之间,则字符在范围内。 所有比较都不区分大小写。 如果集合的左括号后面的第一个字符是感叹号(!),则该集合将匹配集合中不包含的任何字符。
通配符是星号(*)或问号(?)。 星号与任意数量的字符匹配。 问号与单个任意字符匹配。
如果字符串与掩码匹配,则MatchesMask返回true。 如果字符串与掩码不匹配,则MatchesMask返回false。 如果掩码在语法上无效,则MatchesMask会引发exception。
注意:Filename参数不必是文件名。 MatchesMask可用于检查字符串与任何语法正确的掩码。
现代编程语言提供正则表达式引擎,允许进行模式匹配。
C#提供了可以按以下方式使用的Regex类:
using System; using System.Text.RegularExpressions; class Program { static void Main() { // First we see the input string. string input = "/content/alternate-1.aspx"; // Here we call Regex.Match. Match match = Regex.Match(input, @"content/([A-Za-z0-9\-]+)\.aspx$", RegexOptions.IgnoreCase); // Here we check the Match instance. if (match.Success) { // Finally, we get the Group value and display it. string key = match.Groups[1].Value; Console.WriteLine(key); } } }
您可以参考以下链接以获取快速参考
- http://www.dotnetperls.com/regex-match (上面的例子来自这个网站)
- http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet (快速备忘单 – 非常方便)
- http://msdn.microsoft.com/en-us/library/ms228595(v=vs.80).aspx(MS编程参考)
您可以使用System.Text.RegularExpressions
将数据与正则表达式进行比较以实现掩码