关于正则表达式

开发工具与关键技术:Visual Studio 215 ,MVC
作者:任浩基
撰写时间:2019/5/16

现在我们就来说说正则表达式。正则表达式又名为规则表达式,英文名为Regular Eepression.通常在书写代码时简写为regex、regexp或RE.那么正则表达式到底是用来干嘛的呢!其实正则表达式通常被用来检索、替换某些符合模块(规则)的文本。通俗理解就是正则表达式是用于进行文本匹配的工具。
最常见的\b是正则表达式规定的一个特殊代码,我们把它叫做元字符。单词的开头或结尾也就是单词的分界处,它只能匹配一个位置。
上面说的\b只是元字符中的一个,下面我们来看常见的元字符:
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配数字或字母或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
通过上面的元字符我们对正则表达式有了一定的了解。现在我们来看字符转义,字面上理解就是对元字符的反义方法。比如你要查找w,或者s就会出现问题来了。因为你没法指定它们。这时我们就必须使用\来取消这些字符的特殊意义,因此,我们就要用到
\w和\s。当然查找\本身也得用\。
下面我们来看限定符(重复):
代码 说明

  •         重复零次或更多次
    
  •         重复一次或更多次
    

? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
说了这么多我们来做一道题:如何才能匹配到字符串A-G的大写字符呢!
其实道理好简单,我们只要用正则表达式来匹配即可。
答案为:[A-G]。
现在我们用正则表达式匹配几种格式的电话号码:(020)66668888,或022-44556677
答案为:\(?0\d{2}[)-]?\d{8}.
下面是效果图: 在这里插入图片描述
在这里插入图片描述
现在来看反义
代码 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
以及零宽断言分组语法:
代码 说明
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

例子:img οnlοad=”AutoResizeImage(200,200,this)” src=”/Document/Title/Temp/2018-12-10bc5.png” >
匹配出: οnlοad=”AutoResizeImage(200,200,this)”
答案为: onload.+(?=src)
现在要说的是贪婪与懒惰。请不要误会哦,贪婪与懒惰在这里不是指人类的某些行为习惯,而是指编程上的贪婪与懒惰含义。
贪婪:当正则表达式中包含能接受重复的限定符时,通常的行为是在使整个表达式能得到匹配的前提下,匹配到尽可能多的字符。
懒惰:有时候我们更需要懒惰匹配,也就是匹配尽可能少的字符。
如果将前面给出的限定符转化为懒惰匹配模式,只要在它后面加上一个问号即可。
懒惰限定符:
代码 说明
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
img οnlοad=”AutoResizeImage(200,200,this)” src=”/Document/Title/Temp/2018-12-10bc5.png” >
还是这一例子,正确匹配出的正则表达式为: onload.+?(?=src)

关于正则表达式,本人就只能讲述这些了,详情请百度。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值