regexr入门(1)

正则式是什么

其实正则式类似于word.txt文本工具中的查找功能。但正则式中有各种不同的符号,能让我们完成文本查找不能完成的任务。这也正是我们学正则式的目的。

通过实例学习正则式

我们可以在:http://regexr.com/
http://tool.oschina.net/regex/
等等网站在线测试正则式

最基本的例子

我们书写正则式匹配串:name。我们可以看到name 和NAME被高亮了(如果你开启了忽略大小写)

正则式中的转义

我们这里需要匹配\”$NAME$\” 我们不能直接输入:$NAME$。 因为$在正则式中是有特殊用法的。 我们需要使用反斜杠进行转义:$NAME$。

正则式中的通配符

在上面的例子中,显然我们是知道了文本的长度和内容来进行精确匹配,有些时候我们需要进行模糊匹配。
这时候我们就要使用通配符.和+来匹配内容
正则式:\”\\$.+\\$\”
\”.+\”在正则式中意味着无限个字符(包括空格)
我们这里用两个\\$ \\$来定义边界。

通配符的量数限制

在这里我们想要匹配七个a的文本。我们可以书写正则式:aaaaaaa 来匹配。但有时候我们只知道字符的数量而不知道它的内容。我们可以使用{}来划定匹配字符的数量
如本例:a{8} 大括号代表出现的次数 即匹配8个连续出现的a

通配符的内容限制

有时,我们需要匹配一些特定内容的文本。我们可以使用[]来规定匹配内容。
我们想要匹配baidu.com我们可以这样书写正则式:[abidu.com]{9}
中括号表示文本的内容,可以是有序也可以是无序的。

当然,我们有时候也需要排除一些特定内容来匹配文本。我们可以在中括号中加^来声明如上例[^ qwert]{9}也能匹配baidu.com。
[^s]来表示匹配非空字符 (s在正则式中为空格)

单元化正则式提取内容

首先我们先匹配出baidu.com,很简单。正则式:[^s]{9} 我们可以看到baidu.com已经被高亮了。但这并不能输出它,我们需要将这个匹配内容分组,之后才能输出。我们这样书写正则式:([^s]{9})。这样就能将内容编为一个单元,并将其输出。

正则式或匹配

如果我们想要一次性匹配两个网址怎么办呢?
这里就需要使用\”|\”符号了
正则式:((ht|f)tp:/[^s]+)
(ht|f) 表示 ht或者f 都将其在待匹配文本中进行匹配

Tagged:

发表评论

电子邮件地址不会被公开。 必填项已用*标注