2017-06-29 2 views
-1

Ich habe eine Datei basierend auf XML, für die ich eine BAT-Datei verwenden, um einen Teilstring innerhalb der XML zu finden und zu ersetzen.Regex benötigt zum Umbenennen einer bestimmten Teilzeichenkette in einer Datei

Ich verwende diesen Code, um die Systemzeit zu erhalten und später zu verwenden, um die vorherige Zeit zu ersetzen.

@echo off 
set hr=%time:~0,2%%time:~3,2% 
set hr=%hr: =0% 
@echo on 
RxFind Test.txt /p:"HHmm(?<one>.*?)(?<two>.*?)(?<thr>.*?)(?<fou>.*)" /r:HHmm%hr% 

Also, wenn ich dieses laufen lasse, erhalte ich diesen Wert in meinem XML: < Value string="HHmm1416"/ > durch HHmm(system time) ersetzt, so funktioniert es mit Ausnahme

Value string="HHmm1752 
</Value> 

Er schneidet die „\> und bewegt sich das aus untere Zeile in derselben Zeile. Was ist der Regex, um NUR HHmm1416 durch HHMM(new systime) zu ersetzen? Ich kann die Ausdrücke nicht richtig finden.

Ich benutze RxFind für dieses. Ich habe es, einfach verwenden Boobs und b2 für keine Sicherung Cuz

RxFind Test.SC2Bank.txt /p:"HHmm(.)(.)(.)(.)" /r:HHmm%hr% /b:2 
+0

Wenn Sie es gelöst posten Sie Ihre Lösung als Antwort. – chris85

Antwort

0

RxFind ist in C# geschrieben und verwendet die .NET Regular Expression-Formate, so \ d verwenden {4} 4 Stellen zu finden:

RxFind Test.txt /p:"HHmm\d{4}" /r:HHmm%hr% /b:2 
+0

Obwohl dieser Code die Frage möglicherweise beantwortet, sollten Sie eine Erklärung hinzufügen, warum/wie das Problem gelöst wird. – BDL

Verwandte Themen