2016-11-10 10 views
-1

文字列の任意の位置に必須のアンダースコア "_"を付ける正規表現を作成するにはどうすればよいですか?正規表現C#発行(アンダースコア)

私の最初の正規表現は、^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{1,5}$ です。大文字と小文字を意味します。私はこのようなアンダースコアをエスケープしようとしました:試合に\ _

条件は以下のとおりです。 必須:大文字、小文字、アンダースコア「_」 オプション:数値(小数点以下の桁数)

サンプル試合文字列:

_Hola

H_o1a

Ho_l3

H0l_a

Hola_

+4

試み '^(?=。* \ D)(?=。* [-ZA-Z])[-ZA-Z0-9_] {1,5} $ '? –

+0

「_」の量はありますが、1から5の英数字が必要ですか? –

+0

サンプル入力と希望の出力を供給できますか? – Abion47

答えて

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