.NET Regex Ausdruck für 'Suchen & Ersetzen irgendProduct Wert in einer .vdproj Datei in C #

StackOverflow https://stackoverflow.com/questions/1817108

  •  08-07-2019
  •  | 
  •  

Frage

Ich versuche, eine NAnt Erweiterung Aufgabe zu schreiben, die verschiedene Einstellungen innerhalb eines Visual Studio aktualisieren 2003 Setup .vdproj Datei erzeugt, und würde die Hilfe bei der folgenden schätzen.

Im Einzelnen würde Ich mag einen regulären Ausdruck verwenden, zu finden und wenn beliebigen Wert String-Wert auf den Wert Product mit einem neuen String-Wert in seiner entirty zugewiesen gefunden, ersetzen.

Ich bin auf der Suche nach einem regulären Ausdruck gesetzt „Product“ auf einen anderen Wert zu ändern, ohne auf irgendetwas anderes als verlassen zu müssen, dass die Zeichenfolge mit „Product“ = „8“ gesucht beginnt, und dann habe 1 oder mehr Zeichen und . mit einer "Marke endet ich habe ohne Erfolg folgendes versucht:

Bevor das folgende Codefragment ausgeführt wird, die .vdproj Datei Product lautet:

"ProductName" = "8:My Simple .NET Application"

... und das Codefragment in C #:

string _theProductName = "My Other Native Application";

Regex productNameExpression = new Regex( @"(?:\""ProductName\"" = \""8:*)" );

_theProjectFileContents = 
productNameExpression.Replace(_theProjectFileContents, 
                              "\"ProductName\" = \"8:" + _theProductName + "\"" );

bool updatedProductName = 
(_theProjectFileContents.IndexOf(_theProductName) >= 0);

Nach dem obigen Codefragment ausgeführt wird, die .vdproj Datei Product lautet nun:

"ProductName" = "8:My Simple .NET Application"My Other Native Application"

Schließen, aber ich erwarte „Meine andere native Anwendung“ „Meine einfachen .NET-Anwendung“ zu ersetzen, und nicht, um es hinzuzufügen.

Keine Erkenntnisse und Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

Sie sind fast da - nur ein einziges fehlt
. Ändern Sie Ihre regex so und Glück sollten folgen ...

Regex productNameExpression = new Regex(@"(?:\""ProductName\"" = \""8:.*)"); 

Beachten Sie die. nach dem 8:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top