Skip to main content
 首页 » 编程设计

c#之匹配 SomeWord_SomeSecondWord_SomeThirdWord 的正则表达式

2024年02月23日36exmyth

好吧,我绝对是这个星球上最差的正则表达式编写者。在 15 分钟把我的脑袋从 table 上摔下来却一事无成之后,我认为这个伟大的社区可以帮助我。

我知道这很简单,但我需要一个符合以下条件的正则表达式:

SomeWord_SomeSecondWord 

或

SomeWord_SomeSecondWord_SomeThirdWord 

用简单的英语:

  • 下划线分隔的两个或三个单词(一组字母)。
  • 每个词 block 必须以大写字母开头,至少包含两个字符,并且只能包含字母 a-z。

如有任何帮助,我们将不胜感激。我正在尝试编写一个正则表达式来匹配 StyleCop/ReSharper 验证的单元测试方法名称。对于正则表达式,我有绝对的心理障碍。

请您参考如下方法:

试试这个:

@"^[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); 
}