所以我知道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]
。尽管如此,如果您想动态地执行它,它将需要对代码进行一些操作。