C# 匹配SomeWord\u SomeSecondWord\u SomeThirdWord的正则表达式
我是这个星球上最差的正则表达式编写者。我想这个伟大的社区可以帮助我,在15分钟的时间里,把我的头从桌子上摔下来,然后一事无成 我知道这很简单,但我需要一个符合以下条件的正则表达式:C# 匹配SomeWord\u SomeSecondWord\u SomeThirdWord的正则表达式,c#,regex,C#,Regex,我是这个星球上最差的正则表达式编写者。我想这个伟大的社区可以帮助我,在15分钟的时间里,把我的头从桌子上摔下来,然后一事无成 我知道这很简单,但我需要一个符合以下条件的正则表达式: SomeWord_SomeSecondWord 或 SomeWord_SomeSecondWord_SomeThirdWord 通俗易懂的英语: 用下划线分隔的两个或三个单词(一组字母) 每个字块必须以大写字母开头,至少包含两个字符,并且仅包含字母a-z 任何帮助都将不胜感激。我正在尝试编写一个正则表达式,以
SomeWord_SomeSecondWord
或
SomeWord_SomeSecondWord_SomeThirdWord
通俗易懂的英语:
- 用下划线分隔的两个或三个单词(一组字母)
- 每个字块必须以大写字母开头,至少包含两个字符,并且仅包含字母a-z
@"^[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);
}
试试这个:
@"^[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);
}
至少匹配两个字符不应该是
+
而不是*
。@Brian是的,没错。我在第一篇帖子发布几秒钟后更新了它:)+1这是个好答案,但没有必要使用?
惰性修饰符。它不应该是+
而不是*
来匹配至少两个字符。@Brian是的,没错。我在第一篇帖子发表几秒钟后更新了它:)+1这是一个很好的答案,但是没有必要使用?
惰性修饰符。这本书《掌握正则表达式》真的帮了我大忙。理解“正则表达式字母表”中的一小部分核心“字母”可以帮助您处理大多数模式。这本书“掌握正则表达式”真的对我很有帮助。理解“正则表达式字母表”中的少量核心“字母”可以帮助您处理大多数模式。