(Excel)VBA Regex是否有忽略大小写标志



所以我知道Excel VBA正则表达式对象有一个ignoreCase属性,但有没有办法用正则表达式模式中的标志来表示这一点?我尝试了/i?i等,但没能找到有效的方法。

例如,我有:

  • 测试
  • 测试
  • TeSt

我想要一些可以匹配所有三种模式的模式,或者只是"测试"。test适用于后者,但当我希望它们为所有三个条目返回匹配项时,它们都不返回结果:

  • test/i
  • (test)/i
  • /test/i

我目前在我的用户表单上有一个切换ignoreCase的复选框,但如果可能的话,我想重新获得该房地产。

VBA正则表达式中无法使用内联修饰符,它不支持它们,也不使用像/test/i这样的正则表达式分隔符表示法,因为所有模式都应该使用字符串文字提供。

请参阅构造正则表达式Micorsoft参考:

在Visual Basic Scripting Edition(VBScript(中,一对引号(""(分隔正则表达式。

实际上,这些不是分隔符,只是字符串文字的"边界"。

然后,在标志部分,它被写为:

在VBScript中,可以通过将等效属性设置为True来指定这些标志。

因此,无法在模式中使用标志。在Regular-expressions.info:上的VBScript的正则表达式支持文章中也有类似的提及

  • 没有模式修饰符来设置正则表达式中的匹配选项

不过,您可以通过编程或手动将测试转到[tT][eE][sS][tT]。尽管如此,如果您想动态地执行它,它将需要对代码进行一些操作。

最新更新