我在使用 regex.Replace 替换部分字符串时遇到问题。基本思想是我想捕获字符串的开头,然后用代码中的值替换字符串的结尾。例如,假设我有一个字符串,上面写着“测试编号”,后跟数字,我想增加该数字。我捕获了“测试编号”,但是当我尝试将该捕获与新编号连接时,它会将捕获 ($1) 视为文字并用 $1[新编号] 替换整个字符串。
Dim s as String = "We are on Test Number 1"
Dim newNumber as Integer = 2
s=Regex.Replace(s,"(Test Number )(\d)","$1" & newNumber)
这将输出“We are on $12”。但是,如果我在替换中使用文字,则不会发生此问题。
Dim s as String = "We are on Test Number 1"
s=Regex.Replace(s,"(Test Number )(\d)","$1" & "2")
正如预期的那样,这将输出“We are on Test Number 2”。
是否有人对在包含捕获的组时如何在 Regex.Replace 的替换字符串部分中使用变量有任何想法?
提前致谢。