正则表达式学习笔记(一)

前端之家收集整理的这篇文章主要介绍了正则表达式学习笔记(一)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  • 什么是正则表达式

在编写处理字符串的时候,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用来描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码


  • 正则表达式语法递进学习

(1) 关于大小写,正则表达式处理工具会有控制的机制,人为可调,后面会讲。

(2) \b

这是属于正则表达式里面的所谓元字符。看看应用,假设想要在某段文本中查找”men”这个字符串。若是没有使用\b,那么结果是这样的:

wKioL1V1OSLCion5AAB5vTliFEA072.jpg

如果使用了\b的话,结果就是这样:

wKioL1V1OUiwQg6FAABoxEzthoY717.jpg

\b匹配的是单词边界,不匹配任何字符。其中的单词是指另外一个元字符\w所规定的字符串,具体有哪些呢?

这个是看情况的,在支持ASCII码的语言中,\w那就是等价于【a-A-9_】;而在Unicode的语言中,默认情况下,除了以上那些,还包括汉字,全角数字等。

(3) “.” “*”

如果要查找以”men”开头,以”Lucy”结尾的字符串,怎么做呢,可以如下操作,结果如下:

wKioL1V1OWLSHDLKAACGnD5l--c427.jpg

“.” ”*”都是属于元字符。

“.”匹配除了换行符以外的任意一位字符。

“*”不代表字符和位置(不要把它和windows系统里面的查询通配符论比),在正则表达式里面,它表达的是*前边的内容可以连续重复使用任意次以上。

上述图片里面的意思就是以”men”开头,”Lucy”结尾,中间有任意数量但是不能有换行的字符的字符串。所以图片蓝色框框内的字符串没有连起来,因为换行了。”*”可以匹配的是0个或者更多个,有一个符号作用与*相同,那就是”+”,但是它匹配的是1个或者更多个。

(4) “\d” “-“

若是想要查找数字字符串怎么办?使用”\d”

“\d”也是元字符,表示一位数字(0~9)。

“-”不属于元字符,只用来匹配自己,所以可以用来匹配中横线或者减号。

如下图所表示:

wKiom1V1UHTgU_UHAAB0Y1EbKCw790.jpg

但是输入这么多的符号,非常的麻烦,于是,另外的一个方法解决这个麻烦:

wKiom1V1UKqxwJUlAABnav3Lm10325.jpg

相必已经看到,在\d的后面多了{2},其中2就表示是数目。

(5) 测试工具,这里使用的测试工具是从网上下载的RegexBuddy,可以用来做正则表达式的练习和测试。

(6) \w

再来说说\w,前面已经说过,\w表示的是一个匹配单词的元字符,\w也可以用{数字}来表示这个单词有几位。例如\b\w{4}\b:匹配4个字符的单词。

(7) 其它常用元字符

代码

详解

\s

匹配任意的空白符

^

匹配字符串的开始

$

匹配字符串的结束

说明:\s匹配的空白符包括空格,制表符(tab)换行符,中文全角空格。

符号^$类似于\b,下面是一个实例:

wKiom1V1UMGxd_USAABUPdHh7bA233.jpg

其中,{5,12}{5}这种形式的扩展用法{5}表示必须是5个,而{5,12}则是表示可以为5~12个数,重复方法小结:

代码

详解

*

重复0次或者更多次

+

重复1次或者以上

重复0次或者1

{n}

重复n

{n,}

重复n次或者更多次

{n,m}

重复n次到m

原文链接:https://www.f2er.com/regex/360304.html

猜你在找的正则表达式相关文章