2016-11-10 96 views
-1

如何制作正则表达式让我在字符串的任何位置放置强制下划线“_”。正则表达式C#问题(下划线)

我的初始正则表达式是:^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{1,5}$ 这意味着:小写字母和小数字。我试着逃离这样的下划线:\ _

条件的匹配是: 强制性:大写字母,小写字母,下划线“_” 可选:(小数位数)

样品不一致。字符串:

_Hola

H_o1a

Ho_l3

H0l_a

Hola_

+4

试过'^(?=。* \ d)(?=。* [A-ZA-Z])[A-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; 
}