1

概念

  1. 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
  2. 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
  3. 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

用途

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式的特点是

  1. 灵活性、逻辑性和功能性非常强;
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。
  4. 语言独立性,不同平台都提供了对应的正则用法

组成

正则表达式 [2] 由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。

浏览器中的正则对象

如下做了一张正则的JavaScript中的图谱,涵盖了ES5的正则的99%的功能,其中ES6+新增了几个特性,后续会增加补充。
正则图谱
针对以上图谱,我们使用正则来做一个功能:

需求如下:
正则匹配一个字符串是不是数字格式:

// 其中正确数字格式如下:
[
 '5','+5','-5','.5','0.5','1.5','-.5','+.5',
 '10000','10000.','100.00'
]
// 不正确的数字格式如下:
[
 '','.','+','-','+.','-.','.5.5','1.5.5'
]

那么我们可能写出如下正则:

/^(?=.*\d)([+-]?)(?<=\1|\s*)((\d+)?)(?=\4|\s*)(?<=\1|\2|\s*)(\.?)(?=\5|\s*)(?<=\4)((\d+)?)$/

clipboard.png


言月
1.8k 声望490 粉丝

从有技术广度到技术深度的转变,这样才能被自己迷恋