如何搜索数字并将其反转

时间:2013-07-09 20:31:48

标签: vbscript

抱歉标题,但愚蠢的事情不接受任何事情。 我很想做到这一点

Dim myString, myResult
myString = "Hello World! 1234 Hello World! 4321 Hello World! 6789"
Set myRegex = New RegExp
myRegex.Global = true
myRegex.IgnoreCase = true
myRegex.Pattern = "([0-9]+)"
myResult = myRegex.Replace(myString, StrReverse("$1"))

我希望所有数字都能反转 我希望字符串看起来像这样 “Hello World!4321 Hello World!1234 Hello World!9876” 但我得到的只是“1 $”

谢谢: - )

1 个答案:

答案 0 :(得分:2)

您可以使用replacement function

执行此操作
Function Reverse(m, pos, src)
  Reverse = StrReverse(m)
End Function

Set re = New RegExp
re.Pattern = "\d+"
re.Global = True

s = "Hello World! 1234 Hello World! 4321 Hello World! 6789"

WScript.Echo re.Replace(s, GetRef("Reverse"))

输出:

Hello World! 4321 Hello World! 1234 Hello World! 9876

只是调用re.Replace(s, StrReverse("$1"))无效,因为在此语句中,StrReverse会在调用re.Replace()之前反转字符串“$ 1”。