2017-06-12 3 views
0

Ich möchte einen bestimmten Teil der dynamischen Zeichenfolge in vb.net ersetzen. Ich werde versuchen, es in diesem Beispiel zu erklären:So ersetzen Sie bestimmte Teile der dynamischen Zeichenfolge

Ich habe eine Zeichenfolge wie folgt: & 12 = 1005 & 14 = 96 & 230 = 28 & 1116 = 0074005 & 1271 = 45 & 1272% 3d001002003% 2612 % 1276 = 1

und ich möchte diesen Teil 3d001002003 mit etwas anderem Text, den ich in einer Textbox (oder einem anderen Element) eingegeben habe, geändert werden.

Problem ist, dass diese Zeichenfolge in Zeichengröße manchmal unterschiedlich ist:

  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 ... und so weiter.

einzige Konstante in diesem STRING ist, dass ein Teil der immer beginnt geändert werden muss mit 3d und hat immer 11 Zeichen. Also, etwas, was ich suche ist, den Teil der Zeichenfolge zu finden, die mit 3d beginnt und enthält 11 Zeichen und dann ersetzen Sie es mit einem anderen Inhalt aus Textbox.

Vielen Dank im Voraus!

+0

den Index '% 3d' Holen und führen Sie dann' Replace' mit 'Index + 11' oder andere Art und Weise ist, können Sie regex schreiben übereinstimmen die Zeichenfolge und ersetzen Sie sie dann durch einen übereinstimmenden Wert. –

+0

Ich würde es sehr schätzen, wenn Sie ein Beispiel für mich schreiben könnten, weil ich mit dem Programmieren im Allgemeinen nicht so vertraut bin. Vielen Dank. – Gala

Antwort

0

try unterhalb regex

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

(beginnend mit 3D mit folgenden insgesamt 11 Zeichen)

OR

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

(beginnend mit % 3d mit insgesamt 9 numerischen folgenden (angenommen nur numerische Zwischen) Ende mit % = Gesamt 11)

in vb.net

Beispiel:

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)) 
Verwandte Themen