C# Language
Regex Parsing
Ricerca…
Sintassi
-
new Regex(pattern);
// Crea una nuova istanza con un modello definito. -
Regex.Match(input);
// Avvia la ricerca e restituisce la corrispondenza. -
Regex.Matches(input);
// Avvia la ricerca e restituisce un MatchCollection
Parametri
Nome | Dettagli |
---|---|
Modello | Il modello di string che deve essere utilizzato per la ricerca. Per maggiori informazioni: msdn |
RegexOptions [Opzionale] | Le opzioni comuni qui sono Singleline e Multiline . Stanno cambiando il comportamento degli elementi modello come il punto (.) Che non coprirà una NewLine (\ n) in Multiline-Mode ma in SingleLine-Mode . Comportamento predefinito: msdn |
Timeout [Opzionale] | Laddove i modelli diventano più complessi, la ricerca può consumare più tempo. Questo è il timeout passato per la ricerca, così come noto dalla programmazione di rete. |
Osservazioni
Hai bisogno di usare
using System.Text.RegularExpressions;
Bello avere
- Puoi testare i tuoi modelli online senza la necessità di compilare la tua soluzione per ottenere risultati qui: Fai clic su di me
- Regex101 Esempio: clic me
Soprattutto i principianti tendono a sovraffaticare i loro compiti con regex perché si sente potente e nel posto giusto per ricerche più complesse basate sul testo. Questo è il punto in cui le persone cercano di analizzare i documenti xml con espressioni regolari senza nemmeno chiedere a se stessi se ci potrebbe essere una classe già finita per questo compito come XmlDocument
.
Regex dovrebbe essere l'ultima arma per raccogliere la complessità di nuovo. Almeno non dimenticarti di mettere in atto uno sforzo per cercare la right way
prima di scrivere 20 linee di modelli.
Partita singola
using System.Text.RegularExpressions;
string pattern = ":(.*?):";
string lookup = "--:text in here:--";
// Instanciate your regex object and pass a pattern to it
Regex rgxLookup = new Regex(pattern, RegexOptions.Singleline, TimeSpan.FromSeconds(1));
// Get the match from your regex-object
Match mLookup = rgxLookup.Match(lookup);
// The group-index 0 always covers the full pattern.
// Matches inside parentheses will be accessed through the index 1 and above.
string found = mLookup.Groups[1].Value;
Risultato:
found = "text in here"
Più partite
using System.Text.RegularExpressions;
List<string> found = new List<string>();
string pattern = ":(.*?):";
string lookup = "--:text in here:--:another one:-:third one:---!123:fourth:";
// Instanciate your regex object and pass a pattern to it
Regex rgxLookup = new Regex(pattern, RegexOptions.Singleline, TimeSpan.FromSeconds(1));
MatchCollection mLookup = rgxLookup.Matches(lookup);
foreach(Match match in mLookup)
{
found.Add(match.Groups[1].Value);
}
Risultato:
found = new List<string>() { "text in here", "another one", "third one", "fourth" }
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow