人人都看得懂的正则表达式

正则表达式可以帮助我们更好的描述复杂的文本格式。一旦你描述清楚了这些格式,那你就可以利用它们对文本数据进行检索、替换、提取和修改操作。

下面有一个正则表达式的简单例子。第一步先要引入有关正则式的命名空间:

using System.Text.RegularExpressions;

第二步就是用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜索长度为10的a-z的英文字母:

Regex obj = new Regex("[a-z]{10}");

最后,根据正则式在指定数据中检索匹配项,如果匹配IsMatch方法就会返回true。

MessageBox.Show(obj.IsMatch(“shivkoirala”).ToString());

3个重要的正则式命令

记住正则语法最好的办法就是记住这三样东西:Bracket(括号), caret(插入符号)和Dollars(美元符号)。

B
在正则表达式中有3种类型的括号

方括号 “[“和花括号“{“ 。

方括号"["内是需要匹配的字符,花括号"{"内是指定匹配字符的数量。

圆括号“(“ 则是用来分组的。

C 插入符号 “^” 表示正则式的开始。
D 美元符号“$” 表示正则式的结束。

现在你知道上面的3个语法后,你就可以写世界上任何一条验证规则了。比如下面的例子就很好的说明了上面3条正则语法是如何协调运作的。

注:上图有个错误,"()"应为"{}"

  • 上面的这条正则式只能匹配a-z的英文字母,同样是在中括号中标明匹配范围。
  • 花括号中则是标明匹配字符串的最小长度和最大长度。
  • 最后为了让表达式更规则,分别在开头和结尾加上了插入符号"^"和美元符号"$"。

好了,现在我们就用上面的3条语法来实现一些正则表达式的验证规则吧。

检查用户是否输入了shivkoirala?

shivkoirala

让我们开始第一个验证,输入的字符在a-g之间?

[a-g]

输入的字符在a-g之间并且长度为3?

[a-g]{3}

输入的字符在a-g之间并且最大长度为3最小长度为1?

[a-g]{1,3}

我如何在匹配像91230456, 01237648那样的固定8位数?

^[0-9]{8}$

如何验证最小长度为3最大长度为7的数字,如:123, 1274667, 87654?

^[0-9]{3,7}$

如何验证像LJI1020那样的发票编号,前3个是字母剩余为8位长度的数字?

前三个是字母:

^[a-z]{3}

后面是8位长度的数字:

[0-9]{8}

所以整个表达式为:

^[a-z]{3}[0-9]{7}$

验证像INV190203 或 inv820830那样的前3位是不区分大小写的英文字母,剩余8位是数字。

在前面的表达式中只能匹配前3个是小写英文字母的发票编号,如果我们输入大写字母那就不能匹配了。所以为了确保前3个字母是不区分大小写的,我们就要用表达式^[a-zA-Z]{3}。

^[a-zA-Z]{3}[0-9]{7}$

我们可以验证简单的网址URL格式吗?

第一步:检查是否存在www:

^www.

第二步:域名必须是长度在1-15的英文字母:

. [a-z]{1,15}

第三步:以.com或者.org结束:

. (com|org)$

完整的表达式如下:

^www[.][a-z]{1,15}[.](com|org)$

让我们在来看看BCD(其实也就是上面说的3条基本语法)如何验证email格式。

第一步:email开始是长度在1-10的英文字母,最后跟一个"@":

^[a-zA-Z0-9]{1,10}@

第二步:@后面是长度在1-10的英文字母,后面跟一个".":

[a-zA-Z]{1,10}.

第三步:最后以.com或.org结束:

.(com|org)$

最后完整的表达式如下:

^[a-zA-Z0-9]{1,10}@[a-zA-Z]{1,10}.(com|org)$

快捷命令

你也可以用以下的快捷命令来简化你的正则表达式:

实际命令 快捷命令
[0-9] d
[a-z][0-9][_] w
0次或多次发生 *
至少一次发生 +
0次或1次发生 ?

全文完。

转自:http://www.nowamagic.net/librarys/veda/detail/792——人人都看得懂的正则表达式教程

时间: 2024-10-25 15:28:44

人人都看得懂的正则表达式的相关文章

人人都看得懂的正则表达式教程

B 在正则表达式中有3种类型的括号 方括号 “[“和花括号“{“ . 方括号"["内是需要匹配的字符,花括号"{"内是指定匹配字符的数量. 圆括号“(“ 则是用来分组的. C 插入符号 “^” 表示正则式的开始. D 美元符号“$” 表示正则式的结束. 现在你知道上面的3个语法后,你就可以写世界上任何一条验证规则了.比如下面的例子就很好的说明了上面3条正则语法是如何协调运作的. 注:上图有个错误,"()"应为"{}" 检查用户

关于程序员的笑话,你都看得懂吗?

程序猿的读书历程:x语言入门->x语言应用实践->x语言高阶编程->x语言的科学与艺术->编程之美->编程之道->编程之禅->颈椎病康复指南. 问:程序猿最讨厌康熙的哪个儿子?答:胤禩,因为他是八阿哥(bug). 有一天,程序猿们突然发现他们要涨的工资掉到井里啦!大家都很害怕,连忙一个吊着一个,从树上伸到井里去捞工资.正好他们摸到工资的时候,一个老程序员忽然兴奋的大叫:别蠢了,要涨的工资还好好的挂在天上呢! 程序猿要了3个孩子,分别取名叫Ctrl.Alt和Dele

小学生都看得懂的C语言入门(2): 判别 循环的一些应用实例

1.bool 类型 定义bool类型之前需要导入#include <stdbool.h> #include <stdio.h> #include <stdbool.h> int main() { bool b=6>5; bool t=true; printf("%d\n",b); //仍然是整数形式输出 得到1 return 0; } 2.逻辑运算  非!  或||  和&&  x>4 && x<6 

从程序员到项目经理(4):程序员加油站 -- 不是人人都懂的学习要点

学习是一种基础性的能力.然而,“吾生也有涯,而知也无涯.”,如果学习不注意方法,则会“以有涯随无涯,殆矣”. 一.学习也是一种能力 看到这个标题,有人会说:“学习,谁不会?”的确,学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力.我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路.说话.穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自

从程序员到项目经理之程序员加油站 -- 不是人人都懂的学习要点(转发)

学习是一种基础性的能力.然而,“吾生也有涯,而知也无涯.”,如果学习不注意方法,则会“以有涯随无涯,殆矣”. 一.学习也是一种能力 看到这个标题,有人会说:“学习,谁不会?”的确,学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力.我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路.说话.穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自

密歇根大学 - 人人都懂的编程课(Python)

人人都懂的编程课(Python) Week03 Exercise Rewrite your pay program using try and except so that your program handles non-numeric input gracefully. Enter Hours: 20 Enter Rate: nine Error, please enter numeric input

hdu 1024 Max Sum Plus Plus 小白都可以看得懂的解析

这道题弄了很久,网上的很多都看不懂,所以想要写一个像我这种菜鸟都可以看得懂的解析. 题意是将一个长度为n的序列,分成m段不相交叉的子段,使得他们的和最大. 于是可以用dp[i][j]来表示在前j个数中,以num[j]结尾并分为i段的最大和.此时我们可以得出一个式子,dp[i][j]=max(dp[i-1][k]+a[j],dp[i][j-1]+a[j])  (i-1< k< j-1).分别表示num[j]单独成段和num[j]加入以num[j-1]结尾的一段. 现在举一个例子,序列为-1,4,

人人都是程序员

有一家饭店的大厨,烧得一手好菜,经过口碑相传,客人从五湖四海闻名而来.然而这对饭店的老板来说,并不单纯是一个好消息.因为客人不是奔着饭店,而是奔着大厨的手艺来的.老板必须想办法留住这位大厨,否则他一旦被别人挖走,饭店的生意就会一落千丈了.然而即便老板不惜血本保证了大厨的忠诚度,风险也依然存在: 大厨休息或请假的时候,菜品的口味就无法让顾客满意: 大厨只有一个,如果想在多个地方开分店,那口味也就不能保证了: 大厨再厉害,同时也只能炒一个菜,而顾客越来越多,输出总是供不应求: 大厨年纪大了总是要退休

人人都能做产品经理吗?

作为一个创业者来说,特别是主导创业项目的创始人,你首先必须是一个优秀的产品经理,能够始终牢牢掌控自己的创业产品的发展.我将通过一系列文章探讨,如何做一个优秀的产品经理. 阿里巴巴的产品经理苏杰写了一本非常火的书,叫做「人人都是产品经理」,介绍产品经理的思维方法,并且在生活的方方面面都可以运用产品经理的思维解决问题.这本书对于提高人们普遍意义的思考能力有一定的帮助,但是对于真正在互联网行业从事专业的产品经理岗位的人来说是有害的,并不是人人都能够做专业的产品经理. 一个多月前在EGO的活动上,我和达