2017-04-02 38 views
1

我想搜索从.txt文件中提取的字符串,以便用双引号括起来。我正在用Excel宏做所有这些。示例数据:使用双引号编译RegExp模式中的错误

"08134789316498" 
"022" 

我的代码:

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

但上面的线是给错误:

"Compile Error: Expected end of statement"

注:我已经添加引用为 “Microsoft VBScript的正则表达式5.5”和“Microsoft VBScript Regular Expressions 1.0”

+0

这是不是一个关于正确的正则表达式这么多的问题(http://stackoverflow.com/questions/216616/how- [如何在VBA引用字符串中使用双引号]以创建弦含双引号功能于Excel的公式/ 36169987#36169987)。然而,** + **应该作为一个字符串连接符号还是一个字符串文字以及关闭的方括号是否应该在那里存在一些含糊之处。 – Jeeped

回答

5

你不需要逃避双曲从正则表达式的角度来看,但从vbscript/vba的角度来看。

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

OP的样本中是否应该包含尾部方括号?它似乎不符合叙述中的样本数据。 – Jeeped

+0

@Jeeped,问题中的文本指向*“不,它不应该存在”*,或者至少,因为它在原始示例代码中*“也许它应该超出括号”*,但这两个假设都会处理不同的问题,*“正则表达式与我的数据不匹配”*,而不是*“编译错误:预期的语句结束”*,所以我决定放弃它,因为它存在于OP代码中。但我认为更多的信息可能会导致不同的模式。 –

+0

非常感谢。这工作。 –

0

它应该是这样的。

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

非常感谢。这工作。 Khusbu! –

+0

不客气!很高兴它的工作。 – sktneer