如何替换动态字符串

时间:2017-06-12 11:27:51

标签: asp.net string vb.net replace

我想在vb.net中替换动态字符串的某个部分。我将尝试在这个例子中解释它:

我有一个像这样的STRING: &安培; 12 = 1005和14 = 96&安培; 230 = 28&安培; 1116 = 0074005&安培; 1271 = 45&安培; 1272%的 3d001002003 %2612%1276 = 1

我希望使用我在文本框(或任何其他元素)中输入的其他文本更改此部分 3d001002003

问题是这个STRING的字符大小有时会有所不同:

  1. &安培; 12 = 1005和14 = 96&安培; 230 = 28&安培; 1116 = 0074005&安培; 1271 = 45&安培; 1272%的 3d001002003 %2612%1276 = 1
  2. & 12 = 15& 14 = 96& 230 = 28& 1116 = 0075& 1271 = 45& 1272% 3d021022023 %26276 = 1 ...等等。
  3. 此STRING中唯一不变的是,需要更改的部分始终以 3d 开头,并且始终具有 11个字符。所以,我正在寻找的是找到以 3d 开头并包含 11个字符的字符串部分,然后将其替换为Textbox中的其他内容

    提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试使用以下正则表达式

^3d(?!.*  )(?=.*[\w-])[\w -]{11}$

(以3d开头,总共11个字符)

OR

^%3d[0-9]{9}%

(以%3d 开头,后面跟着总共9个数字(假设只有数字介于中间),结尾为 =总计11)

在vb.net中

示例:

Console.WriteLine(Regex.Replace("&12=15&14=96&230=28&1116=0075&1271=45&1272%3d021022023%26276=1", "%3d[0-9]{9}%", "%R%", RegexOptions.IgnoreCase))