正则表达式---看着很难却很方便好用的工具

正则表达式,我们初见可能会被它那些复杂的表达式吓倒,但是我要告诉大家的是,只要一步一步来,你会发现正则表达式其实并没有你想像中的那么困难,它的出现会让我们写出的代码简介很多,并且验证内容会非常准确。既然使用正则表达式可以方便的验证数据,那么什么是正则表达式呢?

1.定义:

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。RegExp对象是Regular Expression(正则表达式)的缩写。

注:正则表达式引擎通常会提供一个“测试指定的字符串是否匹配一个正则表达式”的方法,如JavaScript里的RegExp.test()方法或.NET里的Regex.IsMatch()方法。这里的匹配是指是字符串里有没有符合表达式规则的部分。如果不使用^和$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字

2.学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。

假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。通常,处理正则表达式的工具会提供一个忽略大小写的选项(/i),如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。

不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。

是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置

假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。

使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="js/jQuery1.11.1.js"></script>
    <script type="text/javascript">
        $(function () {
            var value = $("#mybutton").val();
            var regvalue = /^\d{5,12}$/;
            if (regvalue.test(value) == true) {
                alert(‘验证成功!‘);
            }
        })
    </script>
</head>
<body>

    <input type="button" id="mybutton" value="564165"/ >
</body>

结果:

3.字符转义

如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\.

例如:deerchao\.net匹配deerchao.net,C:\\Windows匹配C:\Windows。

4.分支条件

则表达式里的分支条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。听不明白?没关系,看例子:

0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。

5.分组

你可以用小括号来指定子表达式(也叫做分组)

例:\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。

6.反义

今天的讲解就到这里,希望大家有所收获,正则表达式最重要的是练习,练习多了,自然就用的好了(熟能生巧哟),

下次见!!!

时间: 2024-07-29 07:44:44

正则表达式---看着很难却很方便好用的工具的相关文章

很多事情就像看A片,看的人觉得很爽,做的人未必。

http://m.jingdianju.com/wzgs/shenghuo/201307185135.html 转载自: 从这个角度上来说,我不太赞成过于关注第一份工作的薪水,更没有必要攀比第一份工作的薪水,这在刚刚出校园的学生中间是很常见的. 正常人大概要工作35年,这好比是一场马拉松比赛,和真正的马拉松比赛不同的是,这次比赛没有职业选手,每个人都只有一次机会. 刚进社会的时候如果进500强公司,大概能拿到3k -6k/月的工资,有些特别技术的人才可能可以到8k/月,可问题是,5年以后拿多少?

看别人写的优秀代码,是对自己的一种提高,看别人写的很恶心的代码,对自己也是一种提高:告诉自己不要这样写(转)

这两天,我做了两件事: 1.重构了系统某个模块的部分代码: 花了一天时间,一个6k多行的java文件,搞到4k行加若干个类文件,恕我能力有限,后面的实在重构不下去了,那是一种3个domain属性名几乎一样100多个字段但是却用同一个copy了三遍的方法来处理的欲哭无泪,那是一种使劲滚鼠标滚轮都滚不到一个方法尾部的绝望(100多个字段的几个类属性equals来,equals去,get来,set去的,这样类型的方法有那么五六个,你说能不多吗)...... 2.做了一个日志处理的小工具: 客户要求把日

Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)

著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 来源:知乎 这个问题quora上有人提过 What are some lesser known but useful Unix commands? ,已经有不少答案了,我个人已经从这些答案中学到不少,这里我只是照搬过来,然后加上自己的解释. lsof: 列出所有打开的文件.举例:'lsof -p

如果我们很努力很努力,只为了过上平常的生活

换句话说,我没什么天赋,不算太努力,家里没什么背景,接受的教育也就是凑合,也没什么高层次的追求.你觉得我是值得被鄙视的?可一个社会中,最多的就是我这样的人.我人生的目标就是能做个普普通通的人,过普普通通的日子,而这一切,只需要普普通通的努力程度与普普通通的天赋就足够了,这样的人占了总人数的差不多百分之七十,你凭什么觉得这些人都没有权利过上平常但有尊严的生活?实际上我们理应过着平常而有尊严的生活,而且我们最应该过着平常而有尊严的生活--而那些很努力很努力的人,应该过上比我们好得多的生活.如果我们"

写在315前夕:苹果售后福州直信创邺在没有三包的情况下帮小偷翻新、助力小偷换机销赃!无视王法。让人震惊,痛心,憎恨!消费者很受伤很无奈

投诉公司: 北京直信创邺数码科技有限公司 标题: 写在315前夕:苹果售后在没有三包的情况下帮小偷翻新.助力小偷换机销赃!无视王法.让人震惊,痛心,憎恨!消费者很受伤很无奈 期望: 还我手机,或者赔偿手机:其次曝光送修人姓名联系电话:请苹果,警察,还有苹果售后协助铲除这个黑色产业链.一定要彻查到底 我的手机是2月25日被盗,当时就报警了.27日有带好三包凭证去派出所报案.期间还拨打苹果售后400电话进行被盗登记. 这个是25日晚上在官网查询到的信息,当时还没有被刷机换机. 以下是购机证明: --

细谈中医-------很老很老的偏方

中医皮肤科老偏方 解决皮肤的烦心事儿 皮肤是人体对抗疾病的第一道防线一定要严防死守. 在广义上皮肤科包含对头发.指趾甲疾病的治疗.本 章所列举的都是日常生活中最常见的皮肤病用小偏方治疗既轻 松又有效. 读客家庭健康必备书 001 1劝君放弃洗发液用洋葱.生姜治头皮屑 症状头皮屑 很老很老的老偏方 ①将一个捣烂的洋葱头用纱布包好用它揉擦头皮24 小时后用温水洗头即可止头痒除头皮屑. ②先将生姜切片放入锅里煮沸待水温不烫的时候倒 上适量醋加水洗头. 头皮屑谁都不会陌生.有些头皮屑比较多的人即使头皮痒

哪些行为让你觉得对方很高级很有教养?

知乎提问:哪些行为会让你觉得对方很高级很有教养? 突然发现,原来从很小的时候开始,吃饭不吧唧嘴,手部接触异性朋友裸露部位,包括非礼勿视到后来长大了吸烟前征求同意和避开孕妇儿童这些应该属于{日常行为}范畴的行为竟然在其他人眼中已经足够成为了[有教养][很高级]的行为模范了么? 希望列位知友能多多举例,那些时刻那些人的哪些行为会令你觉得[有教养][很高级] 知友@绝烟尘 顺不浪,逆不喷.   知友@罗一觉: 今天我们家搬家,家父带着刚刚实习下班的我把人去楼空的老房子里里外外打扫了一遍,厨房和洗手间就

思念很痛很苦也很美

思念很痛很苦,但也很美. 随着年龄的增长,社会压力的增大,我慢慢的发现要再像年轻时那样勇敢的去爱一个人,去思念一个人已经变得非常困难了.这难道就是大家常开玩笑的"累觉不爱"吗?我们在感情上变得更加理性,这有好处,但另一方面其实我们慢慢的在变得更加麻木,我们很多时候会用理性去控制感性.我能很清晰的感受到,我已经很难像年轻时那样单纯的去思念一个人了,也许有人说这是成熟,但我觉得为了成熟我付出的代价太大了,我已经慢慢的失去了爱的能力,失去了思念的能力.所以,对于我来说,思念是如此珍贵,思念是

根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐

1 background_image_filename = 'blackground.png' 2 black_mouse_image_filename = 'black.png' 3 white_mouse_image_filename = 'white.png' 4 restart_icon_filename='restart.png' 5 pingju_icon_filename='pingju.jpg' 6 win_icon_filename='win.jpg' 7 lose_icon_