美文网首页
正则表达式

正则表达式

作者: 香蕉不拿呢 | 来源:发表于2021-12-14 15:35 被阅读0次

正则表达式经常用到,这篇文件做一下总结记录

一、字符

字符:元字符和字面量字符
元字符是表示特殊含义的字符,包括:^ $ . [ ] { } - ? * + ( ) | \\字符。
字面量字符: 其他字符在表达式中都表示其原来的含义,为字面量字符。

1 位置字符

^:匹配字符串开始位置。
$:匹配字符串结束位置。

2 点字符

.:匹配除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符。

3 选择符

|: 表示‘或’关系,即/apple|banana/表示匹配apple或banana

4 转义符

\: 那些有特殊含义的元字符,如果要匹配它们本身,就需要在它们前面要加上反斜杠。

5 特殊字符

一些不能打印的特殊字符

\n 匹配换行键。
\r 匹配回车键。
\t 匹配制表符 tab(U+0009)。
\v 匹配垂直制表符(U+000B)。
\f 匹配换页符(U+000C)。
6 字符类

[]:有一系列字符可供选择,只要匹配其中一个就可以了

6.1 脱字符(^)

脱字符只有在字符类的第一个位置才有特殊含义,否则就是字面含义。
[^abc]表示匹配不是a、b、c字符的其他字符
[^a-z]表示匹配不是a、b、c....到z字符的其他字符

6.2 连字符(-)

对于连续序列的字符,连字符(-)用来提供简写形式,表示字符的连续范围,[0-9],[a-z],[A-Z]

7 预定义模式

某些常见模式的简写方式

\d 匹配0-9之间的任一数字,相当于[0-9]。
\D 匹配所有0-9以外的字符,相当于[^0-9]。
\w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]。
\W 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]。
\s 匹配空格(包括换行符、制表符、空格符等),相等于[ \t\r\n\v\f]。
\S 匹配非空格的字符,相当于[^ \t\r\n\v\f]。
\b 匹配词的边界。
\B 匹配非词边界,即在词的内部。
8 重复类{}

精确匹配次数
{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次。

9 量词符

?:出现0次或1次,等同于{0, 1}
*:出现0次或多次,等同于{0,}。
+:出现1次或多次,等同于{1,}。

10 修饰符

i:忽略大小写
g:全局匹配

let str = "banana"
// 单个修饰符
/Banana/.test(str)  // false
/Banana/i.test(str)  // true
str.replace(/a/,'x')  // 'bxnana'
str.replace(/a/g,'x')  // 'bxnxnx'
// 多个修饰符
str.replace(/A/ig,'x')  // 'bxnxnx'
str.replace(/A/g,'x')  // 'banana'
11 贪婪匹配

三个量词符(?*+),默认情况下都是最大可能匹配,即匹配直到下一个字符不满足匹配规则为止
*?:出现0次或多次,匹配时采用非贪婪模式
+?:出现1次或多次,匹配时采用非贪婪模式

二、实例方法
1 RegExp正则对象方法

RegExp.prototype.test() 执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。
RegExp.prototype.exec() 执行一个搜索匹配。返回一个结果数组或 null。

let str = 'banana'
let regExp = /^b[a-z]?/
regExp.test(str)    // true

let regExp = /an/g
let regExp2 = /(b)a(n)([a-z])/g
regExp.exec(str)    // [an]
regExp2.exec(str)   // ["bana", "b", "n", "a"]
2 String字符串方法

String.prototype.match() // 检索返回一个字符串匹配正则表达式的结果
String.prototype.search() // 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
String.prototype.replace() // 返回替代模式所取代的新的字符串
String.prototype.split() // 返回源字符串以分隔符出现位置分隔而成的一个 Array

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/pcadfrtx.html