码迷,mamicode.com
首页 > 其他好文 > 详细

Regular Expression 基础

时间:2015-09-12 10:46:49      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

Regular Expression:正则表达式 又称 正规表达式

计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

学习前提示
换行符‘\n’和回车符‘\r’

顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

‘\n‘ 10 换行(newline)
‘\r‘ 13 回车(return)


也可以表示为‘\x0a‘和‘\x0d‘.(16进制)

在windows系统下,回车换行符号是"\r\n".但是在Linux等系统下是没有"\r"符号的。

在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定"\r\n"又要判定"\n"。

写程序时可能得到一行,将其进行trim掉‘\r‘,这样能得到你所需要的string了。

 

正则表达式 元字符

 

<table border="1" cellpadding="0">
        <tr>
            <th>符号</th>
            <th>描述</th>
        </tr>
        <tr>
            <td>^</td>
            <td>匹配字符串的开始</td>
        </tr>
        <tr>
            <td>$</td>
            <td>匹配字符串的结束</td>
        </tr>
        <tr>
            <td>\s</td>
            <td>任何空白字符串</td>
        </tr>
        <tr>
            <td>\S</td>
            <td>热火非空白字符串</td>
        </tr>
        <tr>
            <td>\d</td>
            <td>匹配一个数字字符,等价于[0-9]</td>
        </tr>
        <tr>
            <td>\D</td>
            <td>匹配数字字符以外的任何字符,等价于[^0-9]</td>
        </tr>
        <tr>
            <td>\w</td>
            <td>匹配一个数字、下划线或字母字符,等价于[A-Za-z_0-9]</td>
        </tr>
        <tr>
            <td>\W</td>
            <td>匹配任何非单字字符,等价于[^A-Za-z_0-9]</td>
        </tr>
        <tr>
            <td>.</td>
            <td>除了换行符以外的任意字符</td>
        </tr>
    </table>

 

注:在正则表达式中,我们使用大小写来表示取反
表格里面这个^符号它表示"非"

一般用\w来匹配用户名、邮箱名
一般用\S来匹配任何非空的
一般用.来匹配任意字符

 

例子

邮箱:hanbing_1990@qq.com
QQ:234534324
邮箱:^\w@\w.[a-zA-Z]$
QQ:\d{5,12} {}表示出现的次数,这里是5到12次

上面的写法是错误的!因为只匹配了单个字符!!

匹配符号

 

<table border="1">
        <tr>
            <th>匹配符号</th>
            <th>描述</th>
        </tr>
        <tr>
            <td>{n}</td>
            <td>匹配前面一项n次</td>
        </tr>
        <tr>
            <td>{n,}</td>
            <td>匹配前面一项n次,或者多次</td>
        </tr>
        <tr>
            <td>{n,m}</td>
            <td>匹配前面一项n次,但不超过m次</td>
        </tr>
        <tr>
            <td>*</td>
            <td>匹配前面一项0次或者多次,相当于{0,}</td>
        </tr>
        <tr>
            <td>+</td>
            <td>匹配前面一项1次或者多次,相当于{10}</td>
        </tr>
        <tr>
            <td>?</td>
            <td>匹配前面一项0次或者1次,相当于{0,1}</td>
        </tr>
    </table>

 

所以:

邮箱 hangbing_1990@qq.com(.cn)

正确的正则表达式为: ^\w+@\w+\.[a-zA-Z]{2-3}(\.[a-zA-Z]{2-3}?)

注:匹配符号匹配的是它前面的单个字符
.表示匹配除了\s\n(换行符)以外的任意字符,所以这里要用\转义下


RegularExpresssion正则表达式(RegExp)

语法
var reg1=new RegExp(/^\w{2,3}/);
var reg2=new RegExp("red","i")(g-全局查找 m-多行查找)
(简写)
var reg1=/^\w{2,3}/;
var reg2=/red/i;

注:区别,第一种方法里面的参数是我们的正则表达式,第二种方法里面的参数是一个普通的字符串。

例子

var regQQ=/^\d{5,12}$/;
var strQQ="55"


var result=regQQ.test(strQQ);
注 test():验证目标字符串是否符合正则表达式的规则,返回值为布尔类型


String对象支持正则表达式的方法

search(正则表达式):返回匹配的位置
match (正则表达式):返回匹配的字符串
replace (正则表达式,要替换字符串): 返回替换后的结果

注:这个三个方法不是正则表达式的方法,而是string对象的方法

Regular Expression 基础

标签:

原文地址:http://www.cnblogs.com/nonameG/p/4802581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!