C#片段需要复制VBA Like运算符

C#片段需要复制VBA Like运算符,第1张

概述我正在转换包含LIKE运算符的VBA代码,如 dim sToken as String if sToken Like "(*,*)" then ... 在所有情况下,模式仅使用匹配任何字符串(包括空字符串)的*通配符. VBA Like运算符只产生一个真/假结果,因此可以进一步解析随后的VBA代码,并在匹配时拔出匹配的子字符串. 如果有人可以提供C#片段来测试相同类型的简单通配符匹配,我将 我正在转换包含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正则表达式的一个很好的参考.

总结

以上是内存溢出为你收集整理的C#片段需要复制VBA Like运算符全部内容,希望文章能够帮你解决C#片段需要复制VBA Like运算符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1237166.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存