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