资讯专栏INFORMATION COLUMN

正则表达式快速入门

BearyChat / 2762人阅读

摘要:如这个表达式能匹配两种以连字号分隔的电话号码一种是三位区号,位本地号如,一种是位区号,位本地号。有时我们要匹配的字符串可能包含正则表达式语法提供的一些元字符,这时我们就要用到字符转义例如匹配,匹配。

找了很多正则表达式的教程,始终没有满意的,要不就是直接给出一张元字符的表,要不就是给出各种常用的表达式,直到我看到这篇http://deerchao.net/tutorials/regex/regex.htm
这篇教程简单明了的写了正则表达式的作用及怎样使用,下面是我看完的个人理解:

正则的作用——匹配

理解了正则表达式的作用才能更好的掌握它,正则表达式的作用就是为了匹配字符串:
所以正则里的语法都是为了方便地匹配字符串而生的

下面是正则里最基本的几个匹配符:

.    匹配除换行符以外的任意字符
w    匹配字母或数字或下划线或汉字
s    匹配任意的空白符
d    匹配数字
    匹配单词的开始或结束
^    匹配字符串的开始
$    匹配字符串的结束

有时我们需要自定义匹配的范围

[aeiou]
[a-z0-9A-Z_]

只要满足括号里的任意字符即满足匹配。

有时我们需要取反:

W    匹配任意不是字母,数字,下划线,汉字的字符
S    匹配任意不是空白符的字符
D    匹配任意非数字的字符
B    匹配不是单词开头或结束的位置
[^x]    匹配除了x以外的任意字符
[^aeiou]    匹配除了aeiou这几个字母以外的任意字符

这些只能匹配单个的字符,有时我们要匹配多个重复的:

?    重复零次或一次
{n}    重复n次
{n,}    重复n次或更多次
{n,m}    重复n到m次
*    重复零次或多次
+    重复一次或多次


分支、分组和字符转义

分枝指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。

如:
0d{2}-d{8}|0d{3}-d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。

分组指的是可以用小括号把一条表达式括起来当成一个子表达式来用,然后你就可以指定这个子表达式的重复次数了。

如:
(d{1,3}.){3}d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:d{1,3}匹配1到3位的数字,(d{1,3}.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(d{1,3})。

有时我们要匹配的字符串可能包含正则表达式语法提供的一些元字符,这时我们就要用到字符转义:

例如:
deerchao.net匹配deerchao.net,C:Windows匹配C:Windows。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79418.html

相关文章

  • 前端计划——JavaScript正则达式快速入门

    摘要:前言正则表达式时处理字符串中常用的手法,本文以简单的方式,快速展示了中正则相关的基础知识点。文末还提供了几个简单的正则相关面试题。接下来是正则部分,注意后面的并不匹配,也就是比如,实际匹配的值是和,在和后面加上,就完成了预期。 前言:正则表达式时处理字符串中常用的手法,本文以简单的方式,快速展示了JavaScript中正则相关的基础知识点。文末还提供了几个简单的正则相关面试题。个人总结...

    Xufc 评论0 收藏0
  • PHP 正则达式入门 Getting Started with PHP Regular Expre

    摘要:兼容的正则表达式已经实现了很多使用不同解析引擎的正则函数。中主要有两个正则解析器一个称为,另一个称为兼容正则表达式。在中,每个正则表达式模式都是使用符合格式的字符串。 原文链接: Getting Started with PHP Regular Expressions Last-Modified: 2019年5月10日16:23:19译者注: 本文是面向0正则基础的phper, 很多...

    zhangke3016 评论0 收藏0
  • 前端资源分享-只为更好前端

    摘要:一团队组织网站说明腾讯团队腾讯前端团队,代表作品,致力于前端技术的研究腾讯社交用户体验设计,简称,腾讯设计团队网站腾讯用户研究与体验设计部百度前端研发部出品淘宝前端团队用技术为体验提供无限可能凹凸实验室京东用户体验设计部出品奇舞团奇虎旗下前 一、团队组织 网站 说明 腾讯 AlloyTeam 团队 腾讯Web前端团队,代表作品WebQQ,致力于前端技术的研究 ISUX 腾...

    zxhaaa 评论0 收藏0
  • 前端资源分享-只为更好前端

    摘要:一团队组织网站说明腾讯团队腾讯前端团队,代表作品,致力于前端技术的研究腾讯社交用户体验设计,简称,腾讯设计团队网站腾讯用户研究与体验设计部百度前端研发部出品淘宝前端团队用技术为体验提供无限可能凹凸实验室京东用户体验设计部出品奇舞团奇虎旗下前 一、团队组织 网站 说明 腾讯 AlloyTeam 团队 腾讯Web前端团队,代表作品WebQQ,致力于前端技术的研究 ISUX 腾...

    JouyPub 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<