C#片段需要复制VBA Like运算符
发布时间:2020-12-15 17:47:48 所属栏目:百科 来源:网络整理
导读:我正在转换包含LIKE运算符的VBA代码,如 dim sToken as String if sToken Like "(*,*)" then ... 在所有情况下,模式仅使用匹配任何字符串(包括空字符串)的*通配符. VBA Like运算符只产生一个真/假结果,因此可以进一步解析随后的VBA代码,并在匹配时拔出匹配的
我正在转换包含LIKE运算符的VBA代码,如
dim sToken as String if sToken Like "(*,*)" then ... 在所有情况下,模式仅使用匹配任何字符串(包括空字符串)的*通配符. VBA Like运算符只产生一个真/假结果,因此可以进一步解析随后的VBA代码,并在匹配时拔出匹配的子字符串. 如果有人可以提供C#片段来测试相同类型的简单通配符匹配,我将非常感激.如果片段也产生匹配的子串 – 甚至更好. 解决方法
那么,这个特定的模式可以匹配
if (sToken.StartsWith("(") && sToken.EndsWith(")") && sToken.Contains(",")) 但一般来说,您可能会发现使用正则表达式更有意义.例如: using System; using System.Text.RegularExpressions; class Program { static void Main(string[] args) { Regex regex = new Regex(@"^(.*,.*)$"); Console.WriteLine(regex.IsMatch("x(a,b)")); // False due to the x Console.WriteLine(regex.IsMatch("(a,b)x")); // False due to the x Console.WriteLine(regex.IsMatch("(ab)")); // False due to the lack of,Console.WriteLine(regex.IsMatch("(a,b")); // False due to the lack of ) Console.WriteLine(regex.IsMatch("(a,b)")); // True! Console.WriteLine(regex.IsMatch("(aaa,bbb)")); // True! Console.WriteLine(regex.IsMatch("(,)")); // True! } } 这里有模式注意事项: >我使用了逐字字符串文字(开头的@),以便更容易在正则表达式中执行转义 MSDN “Regular Expression Language Elements”页面是.NET正则表达式的一个很好的参考. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |