2017-06-12 83 views
0

我想替换vb.net中动态字符串的某个部分。我将试图解释它在本例中:如何替换动态字符串的某些部分

我有这样的字符串: & 12 = 1005 & 14 = 96 & 230 = 28 & 1116 = 0074005 & 1271 = 45 & 1272%3d001002003%2612 %1276 = 1

我想要这部分3d001002003用我在文本框(或任何其他元素)中输入的其他文本进行更改。

问题是,该字符串是在字符尺寸有时不同:

  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 ...依此类推。在此字符串

唯一不变是需要总是改变了部分与3D开始,总是有11个字符。所以,我正在寻找的东西是找到字符串的一部分,它以3d开头,并包含11个字符,然后用Textbox中的其他内容替换它。

在此先感谢!

+0

获取%3d'的'索引,然后做'和'指数+ 11'或者其他方式,你可以写正则表达式匹配Replace'该字符串,然后用匹配的值替换它。 –

+0

如果你能为我发表一个例子,我会非常感激,因为我对编码一般不太熟悉。非常感谢你。 – Gala

回答

0

尝试使用以下正则表达式(具有以下总11个字符与3D开始)

^3d(?!.* )(?=.*[\w-])[\w -]{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))