ant string manipulation: Extrahieren von Zeichen aus einer Zeichenfolge

7

Ich habe eine ant-Eigenschaft, die einen Wert vom Typ 1.0.0.123

hat

Ich möchte den Wert nach dem letzten Punkt extrahieren, in diesem Fall wäre das "123". Welche Ameisenaufgabe soll ich verwenden und wie?

    
pdeva 10.02.2011, 08:52
quelle

6 Antworten

8

Ok ich habe die Antwort selbst gefunden und das wird getestet. Sie müssen nur ein bisschen Javascript verwenden.

%Vor%     
pdeva 10.02.2011, 09:10
quelle
10

Ich vermute, dass der einfachste Ansatz darin besteht, die PropertyRegex-Aufgabe zu verwenden.

So etwas - völlig ungeprüft:

%Vor%     
Jon Skeet 10.02.2011 08:54
quelle
8

Mit nativer Ameisen-Aufgabe

Wenn ich keine externen Bibliotheken oder Skripts verwenden möchte, habe ich in eine Antwort gefunden zu einer ähnlichen Frage die beste Option (Kredit für diese Antwort). Hier verwenden Sie eine ReplaceRegex :

%Vor%

(Ich habe dieselben Variablennamen wie Sie in Ihrer Lösung verwendet. Natürlich fehlt Ihnen immer noch der Inkrementteil Ihrer Antwort, aber das war nicht in Ihrer Frage.)

Dieses Skript lädt in index das Ergebnis des Löschens der Regex .*\.) von build.number , dh wenn build.number = 1.0.0.123 dann index = 123 .

Beispiel

build.xml:

%Vor% %Vor%     
Alberto 14.02.2013 10:05
quelle
6
%Vor%     
gman 25.10.2011 20:35
quelle
1
___ qstnhdr ___ ant string manipulation: Extrahieren von Zeichen aus einer Zeichenfolge ___ answer4955150 ___

Ok ich habe die Antwort selbst gefunden und das wird getestet. Sie müssen nur ein bisschen Javascript verwenden.

%Vor%     
___ answer7895537 ___
%Vor%     
___ qstntxt ___

Ich habe eine ant-Eigenschaft, die einen Wert vom Typ 1.0.0.123

hat

Ich möchte den Wert nach dem letzten Punkt extrahieren, in diesem Fall wäre das "123". Welche Ameisenaufgabe soll ich verwenden und wie?

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ answer23897008 ___

Ich würde auch die ant-contrib PropertyRegex Aufgabe verwenden. Das folgende Snippet funktioniert nur, wenn die Eingabezeichenfolge der Konvention entspricht, die Sie in Ihrer Beschreibung verwendet haben, und Sie können sie auch verwenden, um die anderen Zahlen zu extrahieren, indem Sie den Wert im Select-Tag ändern.

%Vor%

Sie können auch die Issest-Task für die Ausgabezeichenfolge verwenden, um eine Fehlermeldung auszugeben, wenn die Eingabezeichenfolge nicht der Konvention entspricht, da die Ausgabeeigenschaft nicht festgelegt wird.

    
___ tag123regex ___ Reguläre Ausdrücke stellen eine deklarative Sprache zur Verfügung, um Muster in Strings zu vergleichen. Sie werden häufig für die Überprüfung, Analyse und Umwandlung von Zeichenfolgen verwendet. Da reguläre Ausdrücke nicht vollständig standardisiert sind, sollten alle Fragen mit diesem Tag auch ein Tag enthalten, das die anwendbare Programmiersprache oder das entsprechende Werkzeug angibt. HINWEIS: Nach HTML-, JSON-, usw.-Regexen zu fragen, neigt zu negativen Reaktionen. Wenn es einen Parser dafür gibt, verwende stattdessen diesen. ___ antwort5009521 ___

Hier ist eine Lösung mit flaka ohne Scripting =

%Vor%     
___ tag123ant ___ Apache Ant (früher Jakarta Ant) ist ein deklaratives, XML-basiertes Build-Tool, das ursprünglich für Java-Projekte erstellt wurde. Es bietet eine Vielzahl von Standardaufgaben für die Ausführung der gängigsten Build-Vorgänge, z. B. das Kompilieren der Java-Quelle, das Erstellen von Archiven und das Ausführen von Tests. Die Funktionalität von Ant kann durch benutzerdefinierte Aufgaben und Makros erweitert werden. ___ answer4955020 ___

Ich vermute, dass der einfachste Ansatz darin besteht, die PropertyRegex-Aufgabe zu verwenden.

So etwas - völlig ungeprüft:

%Vor%     
___ answer14872255 ___

Mit nativer Ameisen-Aufgabe

Wenn ich keine externen Bibliotheken oder Skripts verwenden möchte, habe ich in eine Antwort gefunden zu einer ähnlichen Frage die beste Option (Kredit für diese Antwort). Hier verwenden Sie eine ReplaceRegex :

%Vor%

(Ich habe dieselben Variablennamen wie Sie in Ihrer Lösung verwendet. Natürlich fehlt Ihnen immer noch der Inkrementteil Ihrer Antwort, aber das war nicht in Ihrer Frage.)

Dieses Skript lädt in %code% das Ergebnis des Löschens der Regex %code% von %code% , dh wenn %code% dann %code% .

Beispiel

%code%

%Vor% %Vor%     
___
Rebse 15.02.2011 21:09
quelle
1

Ich würde auch die ant-contrib PropertyRegex Aufgabe verwenden. Das folgende Snippet funktioniert nur, wenn die Eingabezeichenfolge der Konvention entspricht, die Sie in Ihrer Beschreibung verwendet haben, und Sie können sie auch verwenden, um die anderen Zahlen zu extrahieren, indem Sie den Wert im Select-Tag ändern.

%Vor%

Sie können auch die Issest-Task für die Ausgabezeichenfolge verwenden, um eine Fehlermeldung auszugeben, wenn die Eingabezeichenfolge nicht der Konvention entspricht, da die Ausgabeeigenschaft nicht festgelegt wird.

    
Viorel Florian 27.05.2014 19:00
quelle

Tags und Links