C# 匹配为Pascal大小写或句子大小写,而不是两者都匹配

C# 匹配为Pascal大小写或句子大小写,而不是两者都匹配,c#,regex,C#,Regex,我有一些正则表达式,它匹配Pascal大小写和句子大小写,但是我的正则表达式也匹配Pascal大小写 i、 e.Pascal case应匹配“AllPascalCase”,但不匹配“句子case”;句子case应匹配“句子case”,但不匹配“AllPascalCase” 对于我使用的Pascal case regex ^[A-Z][a-z]+([A-Z][a-z]+)+$ 对于我使用的句子案例regex ^[A-Z][a-z]+([ -_]([a-z]+))+$ 看起来这个句子的大小写和帕

我有一些正则表达式,它匹配Pascal大小写和句子大小写,但是我的正则表达式也匹配Pascal大小写

i、 e.Pascal case应匹配“AllPascalCase”,但不匹配“句子case”;句子case应匹配“句子case”,但不匹配“AllPascalCase”

对于我使用的Pascal case regex

^[A-Z][a-z]+([A-Z][a-z]+)+$
对于我使用的句子案例regex

^[A-Z][a-z]+([ -_]([a-z]+))+$
看起来这个句子的大小写和帕斯卡的大小写一样匹配


你知道我做错了什么吗?

使用这个正则表达式,我希望它能有所帮助

^[A-Z][a-z]+([ _-]([a-z]+))+$
连字符和下划线位置互换


--SJ

我觉得这个表达式还可以,你确定你从代码中调用的是正确的吗?举一个pascal大小写的例子。我已经添加了我用于句子大小写的正则表达式,这里我希望在每个单词之间看到一个分隔符,分隔符是空格、连字符或下划线大小写应该匹配“AllPascalCase”,但不是“句子大小写”-它已经出现了?看起来我的测试在句子大小写匹配“PascalCase”方面出现了突破,而不是相反。我已经更新了问题以更好地反映这一点。很明显,
''到'.'
包含了所有大写字母。