Vb.net,用占位符替换字符串末尾的任意数字

Vb.net, replace any number at the end of a string with a placeholder

我有很多字符串末尾都有数字。数字可以是任意大小,例如:

myvar123
mysecondvar3
mythirdvar219107

字符串甚至可以在名称中包含数字,而不仅仅是在末尾。 例如:

my2varable123
some123variable9480395

我需要用占位符替换 END 处的任何数字。 (不是变量名中的那些。)

例如:

my2varable123            should become:   my2variable%placeholder%
some123variable9480395   should become:   some123variable%placeholder%

我想到的唯一方法是使用 .right() 遍历字符串并删除字符(如果它是数字),直到找到第一个非数字字符。然后在最后附加占位符,但对于一个相当简单的问题来说,看起来工作量很大。

有更好的方法吗?

您可以为此使用正则表达式。

Dim str As String = "some123variable9480395"
Dim pattern As String = "\d+$"
Dim replacement As String = "%placeholder%"
Dim rgx As Regex = New Regex(pattern)
Dim result As String = rgx.Replace(str, replacement)