2016-11-10 2 views
-1

Wie kann ich eine Regex erstellen, die einen obligatorischen Unterstrich "_" an einer beliebigen Stelle einer Zeichenkette einfügen lässt.Regulärer Ausdruck C# -Ausgabe (Unterstrich)

Meine ursprüngliche Regex ist: ^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{1,5}$ das bedeutet: Groß- und Kleinbuchstaben und Dezimalstellen. Ich habe versucht, den Unterstrich wie folgt zu entkommen: \ _

Die Bedingungen zum Match sind: Obligatorisch: Großbuchstaben, Kleinbuchstaben, Unterstrichen "_" Optional: Zahlen (Dezimalstellen)

Beispiel Spiel Strings:

_Hola

H_o1a

Ho_l3

H0l_a

Hola_

+4

Versuchte '^ (? =. * \ D) (? =. * [A-zA-Z]) [a-zA-Z0-9_] {1,5} $ '? –

+0

Meinst du es kann eine beliebige Menge von '_' sein, aber es muss 1 bis 5 alphanumerische Zeichen geben? –

+0

Können Sie einen Probeneingang und die gewünschte Ausgabe liefern? – Abion47

Antwort

0
public static bool TryMatchWithRegex(string txt, out string result) 
{ 
    result = string.Empty; 
    // Mandatory= underscore, lowercase, uppercase 
    string pattern = @"^(?=.*_)(?=.*[a-z])(?=.*[A-Z]).*$"; 
    Regex regex = new Regex(pattern, RegexOptions.None); 
    Match match = regex.Match(txt); 
    if (match.Success) 
    { 
     result = match.Value; 
     return true; 
    } 
    return false; 
}