【问题标题】:How Many Parameters Allowed in VBA Regex .Replace Method?VBA Regex .Replace 方法中允许多少个参数?
【发布时间】:2012-04-05 20:08:45
【问题描述】:

! 我正在使用 VBA 正则表达式的替换方法,想知道它可以接受多少个参数?我已经看到提供了许多不同选项的 msdn 页面,但我不确定该使用哪个。这是该页面的链接:MSDN Page: Regex.Replace Method

如果可能的话,我希望能够在“替换为”参数中使用反向引用和其他 VBA 正则表达式。

我目前只能这样做,例如(文字替换)

 RE6a = RE.Replace(strData, " ")

我想这样做,例如:

 RE6a = RE.Replace(strData, \s)

 RE6a = RE.Replace(strData, \1 \3 \4)

如何在 VBA 正则表达式中做到这一点?

感谢您的帮助!

【问题讨论】:

  • 您的链接适用于 .NET Regex,而不是您在 VBA 中使用的链接。
  • 你不能在Replace中替换其他正则表达式。
  • 您是否有一个特定的示例,说明您的字符串文字或子匹配替换无法满足您的需求?

标签: regex vba parameters replace backreference


【解决方案1】:

VBA 没有正则表达式。要使用它们,您必须先引用一个正则表达式库。

如果您引用了 Microsort VBScript 正则表达式库,那么您将在 documentation 中找到答案:

' Swap first pair of words.
MsgBox(ReplaceTest("(\S+)(\s+)(\S+)", "$3$2$1"))

【讨论】:

  • 我评论说这个特定的例子交换了子匹配而不是反向引用。但是上面使用子匹配的过程(即“$1”语法)与reference backreferences 相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 2012-04-14
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多