加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

come on 正则表达式<4>

发布时间:2020-12-14 01:29:17 所属栏目:百科 来源:网络整理
导读:打个广告吧,百度一下正则表达式,那个30分钟入门教程写的不赖,,使我对正则感了点兴趣,,然后还有本书,我正看的,不错,《精通正则表达式》。 thanks 上一次讲了匹配单个字符时,用到的具有范围性的字符,如:d等,和具有量词作用的字符*等。 字符组:

打个广告吧,百度一下正则表达式,那个30分钟入门教程写的不赖,,使我对正则感了点兴趣,,然后还有本书,我正看的,不错,《精通正则表达式》。thanks


上一次讲了匹配单个字符时,用到的具有范围性的字符,如:d等,和具有量词作用的字符*等。

字符组:

量词暂时不提,先说具有范围性的字符。其实,所有的,都可以看作字符数组,格式如:[xxxx],具有的单个字符如s,可以看作[s],数组里只含有一个字符s,.可以看作包含了全部字符的字符数组,d可以看作包含了1到9的数字。and等等。。记住:匹配单个字符时,都可以使用字符数组来匹配,,匹配多个时,就可以结合量词。

现在是查找字符组内的内容,如果想查找字符组以外的其他字符呢,,可以使用[^x],表示匹配一个不是x字符。[^1234],匹配不是1、2、3、4的字符。为了方便,正则引擎又让多潜了几个字符。

D不是数字的字符

W不是(英语)字的字符

S不是空白字符的字符

[^123w]不是1或者2或者3或者w的字符

其中字符^,是已经被潜了的字符,在方括号里表示“非”的意思,在下面要介绍的中,表示字符串的开头的位置。


进行位置的查找:

源字符串:abcdefg123woshihaoren_nishidashen

上面说的都是匹配字符,现在说下位置吧。^匹配源字符串第一个字符前面的位置,$匹配源字符串的末尾。

例如:正则表达式^abcd可以得到匹配,而^bcd不行。。dashen$可以匹配,dashe$不可以。^abc$不行,而^abcdefg123woshihaoren_nishidashen$可以。

环视:

如果你想从源字符nishidashen开始匹配,那么需要先找到n这个字符,怎么匹配nishidashen的n呢,,这时需要用到环视了(就是左看看,右看看)。

顺序环视:(?=nishi),即向右(后)看,这个表示的是个位置,这样解释:找到这个位置,它的右边跟着的是nishi这个正则表达式。so满足了吧,全部正则就是(?=nishi)nishidashen

逆序环视:(?<=haoren_),即向左(前)看,解释:找到这个位置,它的左边是haoren_这个正则表达式。全部正则是:(?<=haoren_)nishidashen

友情提示:

我为了记住这个是这么想的:顺序环视的结构是(?=x)想象为(?>=x),把箭头理解为接下来是什么,解释为:先找个位置,这个位置后(右)面是x,,而逆序环视:(?<=x),先找到x,然后它的后面就是需要找的位置。


刚才是找哪个位置后面有什么,如果要找的位置后面不要什么呢,就用否定就行。

(?=x)这样一个位置:后面跟着x

(?<=x)这样一个位置:前面是x

(?!x)这样一个位置:后面不能是x

(?<!x)这样一个位置:前面不能是x


其他的东西。例如(abcd|hhh|235),括号,然后中间有|,表示是或的意思,即匹配abcd或者hhh或者235,在这里,abcd是一个整体,hhh是,235是。。具体的情况自己百度下吧,,真心说不下去了,,有话说不去,有火不敢发,,,,看着自己写的,越来越杂乱无章了。。stop下吧。。


有么有人感觉到我的英语很垃圾。。哇哈哈

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读