C# 正则表达式——匹配除捕获之外的任何内容

C# 正则表达式——匹配除捕获之外的任何内容,c#,regex,C#,Regex,我一直在摆弄,但我不能完全做到以下几点——我希望能够检查在任意长度的字符串中重复(垃圾邮件)使用一个字符和一个字符。显然,使用正则表达式 1111111——应该匹配 1111112111——不应匹配 --应匹配 !!!!!!a--不应匹配 反之亦然;正如在中一样,我对结果的正确或错误都很满意。只要我能得到结果。我不是一个注册的前大师,我相信我有它的东西沿的路线 ^.*(.).*(?!\1)$ 。。。但是,没有运气 编辑(2015年2月18日11:11 GMT+1): 为了部分结束关于性能和其他

我一直在摆弄,但我不能完全做到以下几点——我希望能够检查在任意长度的字符串中重复(垃圾邮件)使用一个字符和一个字符。显然,使用正则表达式

1111111
——应该匹配

1111112111
——不应匹配

--应匹配

!!!!!!a--不应匹配

反之亦然;正如在中一样,我对结果的正确或错误都很满意。只要我能得到结果。我不是一个注册的前大师,我相信我有它的东西沿的路线

^.*(.).*(?!\1)$
。。。但是,没有运气

编辑(2015年2月18日11:11 GMT+1):

为了部分结束关于性能和其他问题的争论,我决定对提供的3个主要解决方案进行基准测试;正则表达式、Linq的Distinct()方法和Linq的ORDER BY功能

结果是:

生成数据(1000个加密强随机密码)…完成

测试现在开始

正则表达式……完成,1000次迭代耗时3033微秒

string.Distinct……完成1000次迭代,耗时10822微秒

orderby(Linq)…完成,1000次迭代耗时13566微秒

尝试以下方法:

/^(.)\1*$/gm

请参阅演示:

我相信您正在寻找以下内容,以确保您有一个重复字符字符串

^(.)\1*$

是使用正则表达式的替代方法。

谢谢,确实如此。我知道我很接近,有点。
    Public Function IsSpam(value As String) As Boolean
    Dim a = From n In value.ToCharArray() Order By n Descending
            Order By n Descending

    Return a(0) = a(a.Count - 1)
End Function