正则表达式


.       - Any Character Except New Line
\d      - Digit (0-9)
\D      - Not a Digit (0-9)
\w      - Word Character (a-z, A-Z, 0-9, _)
\W      - Not a Word Character
\s      - Whitespace (space, tab, newline)
\S      - Not Whitespace (space, tab, newline)

\b      - Word Boundary
\B      - Not a Word Boundary
^       - Beginning of a String
$       - End of a String

[]      - Matches Characters in brackets
[^ ]    - Matches Characters NOT in brackets
|       - Either Or
( )     - Group

Quantifiers:
*       - 0 or More
+       - 1 or More
?       - 0 or One
{3}     - Exact Number
{3,4}   - Range of Numbers (Minimum, Maximum)


#### Sample Regexs ####

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+

JS中的正则

  • 新建正则的两种方法
var regex = /abc/;
// 等价于
var regex = new RegExp('abc');
//--------------------------------------
var regex = /abc/i;
// 等价于
var regex = new RegExp('abc','i');

  • 属性

RegExp.prototype.ignoreCase:返回一个布尔值,表示是否设置了i修饰符。
RegExp.prototype.global:返回一个布尔值,表示是否设置了g修饰符。
RegExp.prototype.multiline:返回一个布尔值,表示是否设置了m修饰符。

var r =/abc/igm;
r.ignoreCase  // true
r.glogal // true
r.multiline // true
  • 方法
  • RegExp.prototype.exec()
    用来返回匹配结果。如果发现匹配,就返回一个数组,成员是匹配成功的子字符串,否则返回null。
var s = '_x_x';
var r1 = /x/;
var r2 = /y/;

r1.exec(s) // ["x"]
r2.exec(s) // null

RegExp.prototype.test()
方法返回一个布尔值,表示当前模式是否能匹配参数字符串。

/cat/.test('cats and dogs') // true

什么是正则表达式?


写正则表达式基本就是在查找一组字符串是否有某个模式可以匹配 。(Does a group of characters match a specific pattern?)

使用正则表达式,我们一般需要两个角色 (subject string + regex)

  • 一个是主体字符串(subject string)
  • 一个是正则表达式(regex , 就是我们找到的那个字符串的规律,表达式一般写正在两个左斜杆之间)


    正则表达式_第1张图片
    image.png

正则表达式一般用在什么地方?


  • 验证 :比如电话号码、邮件、密码、域名等
  • 搜索:句子中的单词、不想要的字符、替换等

知识点


1. 解决重复:+ 的使用

需求:匹配 ar 、arr、arrr

实现1:
正则表达式_第2张图片
image.png

实现2:(字符后面加+,即为重复该字符)
正则表达式_第3张图片
image.png
2.使用数组集合来匹配所有字母

需求:匹配a、b、c到z中的任一字符


正则表达式_第4张图片
image.png

注意:一个 [a-z] 集合代表的是一个字符。

3.集合和加号的组合使用:匹配任意个数的字符串
正则表达式_第5张图片
image.png

正则表达式_第6张图片
image.png
4.匹配所有的大小写字母(集合中加A-Z或者使用i)
正则表达式_第7张图片
image.png

正则表达式_第8张图片
image.png
5.匹配空白符
正则表达式_第9张图片
image.png

正则表达式_第10张图片
image.png
6.在范围中匹配数字
正则表达式_第11张图片
image.png
7. 对字符和数组范围的重构
正则表达式_第12张图片
image.png
8. 一个邮件的正则
正则表达式_第13张图片
image.png

正则表达式_第14张图片
image.png

正则表达式_第15张图片
image.png
9.匹配特殊字符
正则表达式_第16张图片
image.png
10.组
正则表达式_第17张图片
image.png

正则表达式_第18张图片
image.png
11.开头和结尾
正则表达式_第19张图片
image.png

正则表达式_第20张图片
image.png
12.单词边界
正则表达式_第21张图片
image.png

正则表达式_第22张图片
image.png

正则表达式_第23张图片
image.png

正则表达式_第24张图片
image.png
13.可选(?)
正则表达式_第25张图片
image.png

正则表达式_第26张图片
image.png

正则表达式_第27张图片
image.png
14.组的边界
正则表达式_第28张图片
image.png

正则表达式_第29张图片
image.png
15. 左斜杆后的大写字母
正则表达式_第30张图片
image.png

正则表达式_第31张图片

正则表达式_第32张图片
image.png

正则表达式_第33张图片
image.png
16.匹配字符出现的详细次数
正则表达式_第34张图片
image.png

正则表达式_第35张图片
image.png
17.多行查找
正则表达式_第36张图片
image.png

正则表达式_第37张图片
image.png
18.组匹配
正则表达式_第38张图片
image.png

正则表达式_第39张图片
image.png

正则表达式_第40张图片
image.png

正则表达式_第41张图片
image.png

你可能感兴趣的:(正则表达式)