Regular Expression 基础

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对象的方法

转载于:https://www.cnblogs.com/nonameG/p/4802581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值