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