2017-06-12 82 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))