Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer Ausdruck in C#

Regulärer Ausdruck in C#

WBOY
WBOYOriginal
2024-09-03 15:27:15406Durchsuche

Der Mustervergleich erfolgt in C# mithilfe regulärer Ausdrücke. Die Regex-Klasse von C# wird zum Erstellen regulärer Ausdrücke verwendet. In C# wird ein Standard für den Mustervergleich in Zeichenfolgen und zum Ersetzen mithilfe regulärer Ausdrücke festgelegt und teilt dem Computer über den Benutzer mit, wie B. nach einem bestimmten Muster in einer Zeichenfolge suchen und was die Antwort sein muss, wenn das gesuchte spezifische Muster gefunden wird und Regex die Abkürzung für einen regulären Ausdruck ist, insgesamt sind reguläre Ausdrücke in C# eine leistungsstarke Methode zum Identifizieren und Ersetzen des Textes in den Zeichenfolgen, die in einem bestimmten Format definiert sind.

Syntax

Im Folgenden finden Sie eine Liste der grundlegenden Syntax, die für reguläre Ausdrücke in C# verwendet wird. Sie sind:

1. Quantifizierer

Die Liste der wichtigen Quantoren lautet wie folgt:

  • *: Das vorhergehende Zeichen wird null oder mehrmals gefunden. Betrachten Sie den regulären Ausdruck c*. Dieser Ausdruck ordnet d, cd, ccd, cccd,….c der Potenz von nd zu.
  • +: Das vorangehende Zeichen wird einmal oder mehrmals gefunden. Betrachten Sie den regulären Ausdruck c+d. Dieser Ausdruck ordnet cd, ccd, cccd,….c der Potenz von nd zu.
  • ?: Das vorangehende Zeichen wird null oder einmal gefunden. Betrachten Sie den regulären Ausdruck c?d. Dieser Ausdruck entspricht d, cd.

2. Sonderzeichen

Die Liste der wichtigen Sonderzeichen lautet wie folgt:

  •  ^: Der Anfang der Zeichenfolge wird mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel ^Karnataka. Dieser Ausdruck passt zu Karnataka, unserem Bundesstaat.
  •  $: Das Ende der Zeichenfolge wird mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel Karnataka$. Dieser Ausdruck entspricht unserem Bundesstaat Karnataka. 
  • Punkt (.): Jedes Zeichen wird nur einmal mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel l.t (Länge = 3). Dieser Ausdruck entspricht lit, lot, let.
  • d: Ein Ziffernzeichen wird mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel Regex-[0-9]. Dieser Ausdruck entspricht 123, 456, 254 usw.
  • D: Alle nicht-stelligen Zeichen werden mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel Regex-[^0-9]. Dieser Ausdruck entspricht allem außer den Zahlen, die aus den Ziffern 0-9 bestehen.
  • w: Ein alphanumerisches Zeichen plus „_“ kann mit diesem Sonderzeichen abgeglichen werden. Betrachten Sie das Beispiel Regex – A bis Z, 0 bis 9, a bis z, _(Unterstrich). Dieser Ausdruck entspricht dem alphanumerischen Zeichen „_“.
  • W: Jedes Zeichen, das kein Wort ist, wird mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel W. Dieser Ausdruck entspricht „.“ in „IR B2.8“
  • s: Leerzeichen werden mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel ws. Dieser Ausdruck entspricht „C“ in „IC B1.5“
  • S: Nicht-Leerzeichen werden mit diesem Sonderzeichen abgeglichen. Betrachten Sie das Beispiel sS. Dieser Ausdruck entspricht „_“ in „IC__B1.5“

3. Zeichenklassen

Die Zeichen können gruppiert werden, indem man sie in eckige Klammern setzt. Dadurch stimmt mindestens ein Zeichen in der Eingabe mit einem beliebigen Zeichen in der Klasse überein.

[]: Eine Reihe von Zeichen kann mit [] abgeglichen werden. Betrachten Sie das Beispiel [Xyz]. Dieser Ausdruck entspricht jedem von x, y und z.

Betrachten Sie das Beispiel [c-r]. Dieser Ausdruck entspricht jedem der Zeichen zwischen c und r.

4. Gruppierung und Alternativen

Die Dinge können mithilfe der Klammern ( und ) gruppiert werden.

  • (): Expressions can be grouped using (). Consider the example (ab)+. This expression matches ab, abab, and does not match aabb.
  •  {}: Matches the preceding character for a specific number of times.. The number of times can be specified using the following:
  • n: The previous element is matched exactly n number of times. Consider the example “,\d{3}”. This expression matches,123 in 1,123.40
  •  {n,m}: The previous element is matched at least n number of times but not more than m number of times. Consider the example “,\d{2,3}”. This expression matches,12 and,123 in 1,123.40

Working of Regular Expressions in C#

Basically, there are two types of regular expression engines. They are text-directed engines and regex-directed engine. A regex-directed engine scans through the regex expression trying to match the next token in the regex expression to the next character. The regex advances if a match is found, otherwise it goes back to the previous position in the regex and the string to be parsed where it can try different paths through the regex expression. A text-directed engine scans through the string trying all the permutations of the regex expression before moving to the next character in the string There is no backtracking or going backward in-text directed engine. The leftmost match is always returned by the regex engine even if there are possibilities of finding the exact matches later. The engine begins with the first character of the string whenever a regex is to be applied to the string. All the possible permutations are applied at the first character and the results seem to fail, then the permutations are moved to the second character in the string and this process goes on until the regex engine finds the exact match.

Consider the example Check the water in the bathtub before going to the bath. The regex engine is asked to find the word bath from the above sentence. The first character C is matched with b by the regex engine and this is a failure. So, the next character H tries to match with b by the regex engine and again this is a failure. This goes on and when the regex engine tries to match the 24th character with b, it matches. So, it goes on and matches the word bath from the bathtub with word bath and the engine reports the word bath from the bathtub as a correct match and it will not go on further in the statement to see if there are any other matches. This is how the regex engine works internally.

Methods of Regular Expression in C#

The regular expression in C# makes use of the following methods. They are:

  • public bool IsMatch(string input): The regular expression specified by the regex constructor is matched with the specified input string using this method.
  • public bool IsMatch(string input, int startat): The regular expression specified by the regex constructor is matched with the specified input string with the starting position specified, using this method.
  • public static bool IsMatch(string input, string pattern): The method matches the regular expression specified with the input string specified.
  •  public MatchCollection Matches(string input): All the occurrences of a regular expression are searched in the specified input string, using this method.
  • public string Replace(string input, string replacement): The specified strings matching the regular expression are all replaced by the replacement string, using this method.
  • public string[] Split(string input): The positions specified by the regular expressions is where the array of strings is split into an array of substrings, by using this method.

Example on Regular Expression in C#

C# program to demonstrate the use of regular expressions for the verification of mobile numbers.

Code:

using System;
using System.Text.RegularExpressions;
class Check {
static void Main(string[] args)
{
//Mobile numbers are given as a input to an array of strings
string[] nos = {"9902147368",
"9611967273", "63661820954"};
foreach(string s in nos)
{
Console.WriteLine("The mobile number {0} {1} a valid number.", s,
checkvalid(s) ? "is" : "is not");
}
Console.ReadKey();
}
// Regex expressions are verified through this code block
public static bool checkvalid(string Number)
{
string cRegex = @"(^[0-9]{10}$)|(^\+[0-9]{2}\s+[0-9]
{2}[0-9]{8}$)|(^[0-9]{3}-[0-9]{4}-[0-9]{4}$)";
Regex res = new Regex(cRegex);
if (res.IsMatch(Number))
return (true);
else
return (false);
}
}

Output:

Regulärer Ausdruck in C#

Das obige ist der detaillierte Inhalt vonRegulärer Ausdruck in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn