2016-07-28 12 views
0

Ich versuche, ein Muster für das Abgleichen und Ersetzen der Wörter mit Regex zu erstellen. Mein String wie ist unten angegebenRegulärer Ausdruck für den Vergleich einer Zeichenfolge und ersetzen

<mycomponent id="Myvalue1.Myvalue2.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue3.Myvalue4.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue5.Myvalue6.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue7.Myvalue8.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 

Ich möchte das erwartete Ergebnis wie

aussehen zu
<mycomponent id="Myvalue1.Myvalue2" 
<mycomponent id="Myvalue3.Myvalue4" 
<mycomponent id="Myvalue5.Myvalue6" 
<mycomponent id="Myvalue7.Myvalue8" 

kann ich nicht ReplaceAll .013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9 weil zu leeren verwenden es

<mycomponent Id=*.*.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9 
sind einige Features, die GUID verwenden immer noch, dass

ich in der Lage war

unten Muster unter Verwendung der Zeichenfolge übereinstimmen 210

Aber wenn ich die unten stehenden Muster es für den Ersatz verwendet wird, funktioniert nicht

<mycomponent Id=*.*. 
+0

welche Programmiersprache in Ihrem Fall verwendet wird? – RomanPerekhrest

+0

Ich versuche, Wert mit Notepad ++ zu ersetzen. – TVSuser1654136

Antwort

1

Das Muster tut nicht wirklich die beabsichtigte Sache, da man die Punkte nicht entgangen sein. Das ist nur ein Zufall. Um dem zu entsprechen, was Sie wollen, sollte der folgende Regex verwendet werden.

<mycomponent id=.*?\..*?\. 

Diese Regex passt <mycomponent id=, dann einen Punkt, dann die minimale Menge an Zeichen, bevor es einen Punkt trifft, dann ist ein Punkt, dann wieder die minimale Menge von Zeichen, bevor es einen weiteren Punkt trifft.


Wenn Sie repalce möchten, verwenden Sie diese für die regex Feld

(<mycomponent id=".*?\..*?)\.\S+ 

und dies für den Ersatz Feld

$1" 
+0

und zum Ersetzen, was regex sollte ich verwenden – TVSuser1654136

+0

@user Was möchten Sie ersetzen, und mit was? – nicael

+0

ist es in der Frage erwähnt. Könnten Sie bitte schauen, dass – TVSuser1654136

1

Verwenden Sie den folgenden Ansatz:

  • Regexp Feld (Suche nach):

    (<mycomponent id=.+\..+)(?:\.)013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9(.+) 
    
  • ersetzen:

    $1$2 
    

(getestet auf Notepad++)

+0

Es funktioniert. Aber Ich will nur die GUILD ersetzen. Dieses Muster ersetzt alles nach der GUID auch. – TVSuser1654136

+0

Sie haben nicht die tatsächliche Zeichenfolge, die etwas * nach der GUID enthalten *. Fügen Sie ein Beispiel – RomanPerekhrest

+0

Meine vollständige Zeichenfolge ist wie TVSuser1654136

Verwandte Themen