正则表达式的精髓在于精准控制,而量词就是实现这一目标的魔法棒,如何正确挥动手中的魔法棒呢?一文教会大家

零次或一次匹配
正则表达式中,问号 (?) 作为一个量词,主要功能是表示其前面的字符或子表达式可以出现 "零次" 或 "一次" ,相当于{0,1}
例如,在文本中检索“颜色”这个单词,英文中有两种写法:color和 colour都是正确的,此时使用问号(?) 这一量词就非常适合
Dim item' 创建正则表达式对象With CreateObject("VBScript.RegExp").Global = True ' 搜索全部匹配项.IgnoreCase = False ' 区分大小写.Pattern = "colou?r"For Each item In .Execute("color, this is a pretty colour! light color ")Debug.Print itemNextEnd With
因为这个单词两种写法的主要区别是字母“u”,也就是说字母“u”出现“零次”或是“一次”都可以,所以此处的匹配规则可以写成.Pattern = "colou?r"或者也可以写成.Pattern = "colou{0,1}r"
以上代码执行后结果如下:

将文本“color, this is a pretty colour! light color ”中“颜色”这个单词的两种写法全部检索出来了


468

被折叠的 条评论
为什么被折叠?



