Zoeken…


Syntaxis

  • new Regex(pattern); // Maakt een nieuwe instantie met een gedefinieerd patroon.
  • Regex.Match(input); // Start het opzoeken en geeft de Match terug.
  • Regex.Matches(input); // Start het zoeken en retourneert een MatchCollection

parameters

Naam Details
Patroon Het string dat moet worden gebruikt voor het opzoeken. Voor meer informatie: msdn
RegexOptions [Optioneel] De gebruikelijke opties hier zijn Singleline en Multiline . Ze veranderen het gedrag van patroon-elementen zoals de punt (.) Die een NewLine (\ n) niet dekken in Multiline-Mode maar in SingleLine-Mode . Standaardgedrag: msdn
Time-out [Optioneel] Wanneer patronen complexer worden, kan het opzoeken meer tijd kosten. Dit is de verstreken tijd voor het opzoeken, net zoals bekend uit netwerkprogrammering.

Opmerkingen

Nodig gebruik

using System.Text.RegularExpressions;

Goed om te hebben

  • U kunt uw patronen online testen zonder dat u uw oplossing hoeft te compileren om hier resultaten te krijgen: klik op mij
  • Regex101 Voorbeeld: klik op mij

Vooral beginners neigen ertoe hun taken te overdrijven met regex omdat dit krachtig en op de juiste plaats aanvoelt voor complexere op tekst gebaseerde zoekopdrachten. Dit is het punt waarop mensen xml-documenten proberen te ontleden met regex zonder zichzelf zelfs maar te vragen of er een al voltooide klasse voor deze taak zoals XmlDocument .

Regex zou het laatste wapen moeten zijn om de complexiteit te kiezen. Vergeet in ieder geval niet wat moeite te doen om de right way te zoeken voordat u 20 lijnen met patronen opschrijft.

Enkele wedstrijd

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;

Resultaat:

found = "text in here"

Meerdere wedstrijden

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);
}

Resultaat:

found = new List<string>() { "text in here", "another one", "third one", "fourth" }


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow