【问题标题】:Check for Numeric Value in Word Macro using Regular Expressions使用正则表达式检查 Word 宏中的数值
【发布时间】:2015-12-10 00:02:14
【问题描述】:

Word宏中可以直接使用正则表达式吗?

我想检查一个字符串是否只包含数字,下面的代码不起作用。

isNumber = RegEx.IsMatch("234", "[0-9]+$")

我只需要它返回真或假。

【问题讨论】:

    标签: regex vba ms-word


    【解决方案1】:

    您可以在代码中创建VBScript.Regexp 对象的实例,但更简单的解决方案是使用现有的VBA 函数IsNumeric。两种方法都包含在下面:

    Sub testNumeric()
    
        'Use IsNumeric
        MsgBox (IsNumeric("12345"))     'Returns true
        MsgBox (IsNumeric("123a"))      'Returns false
    
        'Alternatively, using Regexp Object
        Dim regexp
        Set regexp = CreateObject("VBScript.Regexp")
        regexp.Pattern = "[0-9]+$"
        MsgBox (regexp.test("12345"))   'Returns true
        MsgBox (regexp.test("123a"))   'Returns false
    
    End Sub
    

    请注意,正则表达式模式并不严格返回数字,也包括任何以数字结尾的字符串(即测试“a123”返回 true)。要使正则表达式严格检查数字,模式可以是^[0-9]+$。感谢@mike 指出这一点。

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 2021-04-28
      • 2020-06-21
      • 2019-06-17
      • 1970-01-01
      • 2013-07-12
      • 2011-04-12
      • 2011-03-27
      • 2014-04-18
      相关资源
      最近更新 更多