知识大全 用正则表达式保留系统靓号
Posted 系统
篇首语:宁叫钱吃亏,不叫人吃亏。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用正则表达式保留系统靓号相关的知识,希望对你有一定的参考价值。
有的时候用户系统用类似于QQ的号码做为UIN 这个时候可能需要保留鞋好的号码供以后不时之需 怎么实现呢?
正则就行了 看代码
view sourceprint?public static Dictionary<string Regex> _validations = new Dictionary<string Regex>
位顺增号 new Regex(@ (?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) \\d RegexOptions Compiled)
位顺降好 new Regex(@ (?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) \\d RegexOptions Compiled)
位顺增或顺降号 new Regex(@ (?:(?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) |(?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) )\\d RegexOptions Compiled)
位连续号 new Regex(@ (?:(?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) |(?: (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )| (?= )) )\\d RegexOptions Compiled)
位以上重复号 new Regex(@ ([\\d])\\ RegexOptions Compiled)
// 日期号 new Regex(@ ( | )[\\d] ( [ ]| ?[ ])( | [ ]| [ ]| ?[ ]) RegexOptions Compiled)
// 手机号码号 new Regex(@ ( [ ][ ]| [ ]| [ ])([\\d] ) RegexOptions Compiled)
AABBB号 new Regex(@ ([\\d])\\ ([\\d])\\ RegexOptions Compiled)
ABBXABB号 new Regex(@ (([\\d]) ([\\d]) )\\ RegexOptions Compiled)
AABBC ABCDD号 new Regex(@ ([\\d])\\ ([\\d])\\ RegexOptions Compiled)
;
public int GenerateUin()
var r = new Random((int)DateTime Now Ticks);
var n = r Next( );
var tmp = ;
var t = n ToString();
if (!IsGoodUin(t out tmp)
&& !ObjectContext Member Any(m => m UIN == t))
return n;
return GenerateUin();
public static bool IsGoodUin(string uin out string reason)
var isGood = false;
var r = ;
_validations Each(r =>
if (r Value IsMatch(uin))
isGood = true;
r = r Key;
return false;
return true;
);
reason = r ;
return isGood;
测试以下
view sourceprint?public void TestPresentUIN()
Each(() =>
Console WriteLine(GenerateUin());
);
嗯 输出的号码都是歪瓜裂枣了 呵呵
cha138/Article/program/net/201311/11535
相关参考
简单的说正则表达式是一种可以用于模式匹配和替换的强有力的工具我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影例如vi编辑器Perl或PHP脚本语言以及awk或sedshell程序等
三括号或匹配 在正则表达式中由于[]号只能做单个元素的匹配这样会限制正则表达式的作用如何做到多个元素的匹配呢?用()实现 ()可以进行多个元素的匹配例如:t(a|e|i|o|oo)n|在正则表
PHP正则表达式使用的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP正则表达式主要用
Java正则表达式详解(上) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果你曾经用过Per
一个正则表达式匹配结果可以分成多个部分这就是组(Group) 把一次Match结果用(?<name>)的方式分成组例子: 
许多时候我们在制作表单时需要限制文本框输入内容的类型下面我们用正则表达式限制文本框只能输入数字小数点英文字母汉字等各类代码 文本框只能输入数字代码(小数点也不能输入) &n
本篇文章是对js中正则表达式的使用进行了详细的分析介绍需要的朋友可以参考下 js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了定义正则表达式关于验证的三个这则表达式方法正则表达
PHP正则匹配中文字母数字正则表达式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法一 代
正则表达式在PHP中的应用在PHP应用中正则表达式主要用于•正则匹配根据正则表达式匹配相应的内容•正则替换根据正则表达式匹配内容并替换•正则分割根据正则表达式分割字符串在PHP中有两类正则表达式函
很久没有遇上PHP难题了这次正则问题占了一点时间还是老问题最大回溯递归限制问题学习透之后其实并不难修改调试有这类问题的正则主要是以下几点 基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯