C# 使用正则表达式查找括号中包含小写和大写字符的单词

C# 使用正则表达式查找括号中包含小写和大写字符的单词,c#,regex,visual-studio-2013,C#,Regex,Visual Studio 2013,我正在创建一个程序,搜索字符串以查找括号中的单词,这些单词包含小写和大写字符,但我似乎不知道要使用哪个正则表达式。示例词-(LowerUpper) 正则表达式: string upperLowerParens = "\\([A-Z][a-z][a-z]+[A-Z]+\\)"; 要确保括号中的单词至少有一个大写字母和一个小写字母,并且只包含字母,可以尝试(设置区分大小写) 我在问题中发布的第一个reg ex的问题是它只返回了前三封信。但我发现这个正则表达式适用于上述示例,并通过regex101.

我正在创建一个程序,搜索字符串以查找括号中的单词,这些单词包含小写和大写字符,但我似乎不知道要使用哪个正则表达式。示例词-(LowerUpper)

正则表达式:

string upperLowerParens = "\\([A-Z][a-z][a-z]+[A-Z]+\\)";

要确保括号中的单词至少有一个大写字母和一个小写字母,并且只包含字母,可以尝试(设置区分大小写)


我在问题中发布的第一个reg ex的问题是它只返回了前三封信。但我发现这个正则表达式适用于上述示例,并通过regex101.com进行了验证

 [A-Z][a-z][a-z]+[A-Z]+[a-z][a-z]+
试试这个

\(([A-Z]+[a-z]+)[A-za-z]*\)|\(([a-z]+[A-Z]+[A-za-z]*)\)
  • 解释
这分为两部分,如果其中一部分匹配,则括号之间的单词将匹配

  • \([A-Z]+[A-Z]+[A-za-Z]*\)
    这验证了类似于
    (LowerUpper)
    的内容,其中大写字母首先出现
  • \([a-z]+[a-z]+[a-za-z]*)
    这将验证类似于
    (大写字母)
    的内容,其中小写字母首先出现
  • 如果你想在括号前后加空格,你可以把你的正则表达式改成如下形式:
    \(*([A-Z]+[A-Z]+)[A-za-Z]**\(*([A-Z]+[A-Z]+[A-za-Z]*)*)


    检查此处的演示

    您是否也希望(LOWERUPPER)、(LOWERUPPER)、(LOWERUPPER)等匹配?你能提供用于测试的输入字符串,以及那些你期望匹配或失败的字符串吗?它将是一个括号中没有空格的字符串,比如“(LowerUpper)”我基本上只想为你查找just(LowerUpper)no的情况。它匹配
    (UpperLower)
    。如果你需要其他东西,你需要对你的需求更加具体。它需要是一个与之完全匹配的正则表达式。一个或多个大写字母一个或多个小写字母和括号您只需将
    [^)]
    更改为
    [A-Za-z]
    ,以确保匹配序列中唯一的字符是括号以及大写和小写字母。我编辑以显示此正则表达式不包含括号要求;它还要求第一个字母为大写,最后一个字母为小写。这些参数都没有在你的初始问题中说明,我没有包括括号,但我尝试了括号和out,结果发现两者都有。正如我所写的,除此之外,你的正则表达式要求第一个字母是大写,最后一个字母是小写,考虑到我发布的样本中有这两个要求,您的问题中都没有说明。还有很多项您的正则表达式将匹配,但您的样本中没有包含这些项
    (Loweruper)
    \(([A-Z]+[a-z]+)[A-za-z]*\)|\(([a-z]+[A-Z]+[A-za-z]*)\)