Io di solito finiscono con un sacco di condizioni e/o loop per analizzare una regex e interpolare i valori di nuovo nei suoi gruppi di cattura, e sono alla ricerca di risposte con esperienza per risolvere questo problema in auspicabilmente, un modo semplice.modo più semplice per costruire una stringa interpolando i valori in un modello Regex?
Ad esempio, dato un modello di espressione regolare come X(?<xid>\d+)-(?<xsub>\w+)\.xml
avere i gruppi di cattura denominata "xid" e "XSUB", destinati per abbinare i nomi di file come: X1-foo.xml, X555-bar.xml, ecc, ove previsto con gli argomenti: int xid=999, string xsub="baz"
, voglio interpolare questi valori nei gruppi del modello per costruire il corretto nome del file: X999-baz.xml
per farla semplice, cattura espliciti non sono annidati.
Senza String.Format:
Questo concetto è facilmente realizzabile con gli elementi di formato .NET stringa come String.Format("X{0}-{1}.xml", xid, xsub)
però ho già un modello Regex per analizzare fuori quei valori da qualsiasi stringa nome del file, e vogliono usare lo stesso modello per andare nella direzione opposta ricostruendo un nome di file con esso, per precisione. Se ho bisogno di un modello di espressione regolare per analizzare i valori da una stringa, ma una stringa con gli oggetti in formato di ricostruire il nome del file, esso richiede due tipi di sintassi distinti da utilizzare, la creazione di una maggiore possibilità di errori manuali durante la scrittura loro - è troppo facile erroneamente creare una stringa elemento formato male che non ricostruire correttamente il risultato di una partita espressione regolare, o viceversa.
In questa situazione, la regex è in effetti l '"input". – BoltClock