好的,所以我是这个星球上绝对最差的正则表达作家。认为这个伟大的社区可以帮助我在15分钟后把我的头从桌子上摔下来,无处可去。
我知道这很简单,但我需要一个符合以下条件的正则表达式:
SomeWord_SomeSecondWord
或
SomeWord_SomeSecondWord_SomeThirdWord
用简单的英语:
非常感谢任何帮助。我正在尝试编写一个正则表达式来匹配StyleCop / ReSharper验证的单元测试方法名称。对于正则表达式,我有绝对的心理障碍。
答案 0 :(得分:4)
试试这个:
@"^[A-Z][a-zA-Z]+(?:_[A-Z][a-zA-Z]+){1,2}$"
[A-Z][a-zA-Z]+
确保以大写字母开头,+
的使用将确保至少有一个其他字符,满足最少2个字符的要求。
这是一个实际的例子:
string[] inputs =
{
"SomeWord", "SomeFirstWord_SomeSecondWord",
"SomeWord_SomeSecondWord_SomeThirdWord", "SomeWord_Some2ndWord"
};
string pattern = @"^[A-Z][a-zA-Z]+(?:_[A-Z][a-zA-Z]+){1,2}$";
foreach (var input in inputs)
{
Console.WriteLine("{0}: {1}", Regex.IsMatch(input, pattern), input);
}