【问题标题】:Compile error in RegExp pattern with double quotes带双引号的 RegExp 模式中的编译错误
【发布时间】:2017-04-02 14:36:04
【问题描述】:

我想在从 .txt 文件中挑选的字符串中搜索用双引号括起来的数字。我正在使用 Excel 宏来完成所有这些工作。示例数据:

"08134789316498"
"022"

我的代码:

Set oRegex1 = CreateObject("VBScript.RegExp")
oRegex1.Pattern = "(\"[0-9]+\"])"

但是上面一行给出了错误:

“编译错误:预期语句结束”

注意:我已经添加了对“Microsoft VBScript Regular Expressions 5.5”和“Microsoft VBScript Regular Expressions 1.0”的引用

【问题讨论】:

标签: vba excel vbscript


【解决方案1】:

您不需要从正则表达式的角度转义双引号,但从 vbscript/vba 的角度来看。

oRegex1.Pattern = "(""[0-9]+""\])"
                    ^^      ^^   quotes escaped inside string by doubling them

【讨论】:

  • 是否应该从 OP 的示例中包含尾随方括号?它似乎与叙述中的样本数据不符。
  • @Jeeped,问题中的文本指向一个“不,它不应该存在”,或者至少,就像在原始示例代码中一样“也许它应该在括号外”,但两个假设处理不同的问题,“正则表达式与我的数据不匹配”,而不是“编译错误:预期语句结束”,所以我决定保留它,因为它存在于 OP 代码中。但我认为进一步的信息可能会导致不同的模式。
【解决方案2】:

应该是这样的。

oRegex1.Pattern = "(""[0-9]+"")"

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多