Microsoft.VisualBasic.CompilerServices.LikeOperator.LikeString中具有特殊字符的模式不起作用

时间:2018-01-31 10:54:27

标签: c# vb.net vba design-patterns

我尝试使用LikeOperator.LikeString功能进行模式匹配,如下所示:

    // Usage: bool matchValue = LikeOperator.LikeString(string, pattern, CompareMethod);
    bool match = LikeOperator.LikeString("*test*/fe_quet", "(*)test(*)/*", Microsoft.VisualBasic.CompareMethod.Text);

以上内容应该按照文档返回true,但它只返回false。我试图用括号来逃避(*),但它似乎不能以这种方式工作。任何人都可以帮我定义带有特殊字符的模式字符串吗?

由于

1 个答案:

答案 0 :(得分:1)

来自Like Operator(您提供的):

  

要匹配特殊字符左括号([),问号(?),数字符号(#)和星号(*),请将它们括在括号中。

因此,你需要在[]而不是()中包装你的星号:

bool match = LikeOperator.LikeString("*test*/fe_quet", "[*]test[*]/[*]", Microsoft.VisualBasic.CompareMethod.Text);

使用Regex而不是VB命名空间可能会更好。