正则表达式
2024-09-09 10:41:53 1 举报
AI智能生成
正则框架
作者其他创作
大纲/内容
. 任意字符(除换行外)
\\d 任意数字 \\D非任意数字
\\w 任意数字字母下划线 \\W非任意数字字母下 划线
\\s 任意空白符
\ 回车
\ 换行
\\f 分页
\\t水平制表
\\v 垂直制表
空白符
特殊单字符
()中的内容会被看做为一个整体
在后续的匹配中可是只用之前的()的内容作为一个整体,再次被使用 例如 /(\\w+)(\\s\\1)+/
子主题 1
功能
第几个括号就是第一个分组
非捕获组 使用(?:)提升性能
捕获组的编码从左括号开始计数
捕获组命名(?P<分组名>正则)。
分组编号
例子
分组
一开始匹配会找最大的量词进行匹配
不成功:则吐出一个字符,继续匹配后面第一个字符,否则继续走不成功的程序
成功:继续下一个条件
吐出=回溯
贪婪模式(表示 默认是贪婪模式)
一开始匹配会找最小的量词进行匹配
不成功:则增加一个字符,继续匹配后面第一个字符,否则继续走不成功的程序
成功:继续匹配下一个条件
let sentence = \"This is a test\";let wordRegex = /\\b\\w+?\\b/g;let words = sentence.match(wordRegex);console.log(words); // 输出: [\"This\
修饰符:我们可以在量词后面加上英文的问号 (*?)
非贪婪模式(懒惰模式 ?)
不会进行回溯子主题 1
它使用+或*后面紧跟+或*(如++或*+)
不会进行回溯
独占模式 +(js 中不支持独占)
模式
* 0个或者多个
? 一个或者没有 就其实本身的是有没有的意思
+ 至少一个
{1,} 至少匹配一个
{1} 匹配1次
量词
作用:英文的点可修修饰任何字符
修饰符: .
[\\s\\S]=[\\w\\W]=[\\w\\W] 与 (?s)(js不支持这个格式的书写) 相等
单行匹配模式
点号通配模式Dot All
作用:使 ^ 和 $默认匹配整个字符串的开头或者结尾,多行模式可以使得他匹配每行的开头或者结尾
通常情况下,^匹配整个字符串的开头,$ 匹配整个字符串的结尾。多行匹配模式改变的就是 ^ 和 $ 的匹配行为。
^匹配行的开始,多行模式时,可以匹配任意行开头
$匹配行的结尾,多行模式时,可以匹配任意行结尾
多行模式Multiline
只用:正则可能会很复杂,注释使用
(\\w+)(?#word) \\1(?#word repeat again)
注释模式Comment
作用:正则不区分英文字母的大小写
修饰符 :(?i) js 中 /正则表达式/i
(?i)cat js中 /cat/gi
Cat cat CAT匹配出cat字符,不论大小写
修饰符如果在括号内,作用范围是这个括号内的正则,而不是整个正则;((?i)c)at 仅仅只对c的大小写不过敏,at还是匹配小写的
不区分大小写模式Case-Insensitive
匹配模式mode(js是在放在正则表达式的外面/正则/ims)
\\b 单词的边界
^匹配行的开始,多行模式可以匹配任意行的开头
$匹配行的结束,多行模式可以匹配任意行的末尾
\\A 仅匹配整个字符串的开始,不支持多行模式
\\Z 仅匹配整个字符串的结束。不支持多行模式
行的开始于结束
(?<=Y)X 匹配X前面是Y
(?<!Y)X 匹配X前面不是Y
X(?=Y) 匹配X右边紧接着是Y
X(?!Y) 匹配X的右边不是Y
环视
断言
含义:对他后续的几个字符进行替代并解释
编码无法使用字母直接表示的特殊数据
表示无法直接键盘录入的字符(如回车符)
转义字符
字符串转义:输入字符串到字符串文本的过程
正则转义:正则文字到正则表达式的过程
匹配反斜杠本身需要一个\\
简化方式:使用原生字符串
字符串转义和正则转义
量词*或+或?或-或¥或|等,直接在前面加反斜杠
括号[]{}只需要转义开括号\\[]\\{},但是()需要两个兜都转义
Python re.escape(test)
Go regexp.QuteMeta(text)
java Pattern.quote(texy)
PHP preg_quoye(text)
使用编程语言中的函数消除元字符特殊含义
元符号的转义
1,脱字符在中括号,切在第一个位置
2,中划线在中括号中,且不在收尾位置
3,有括号中在中括号中,且不在首位
4,其它单个长度的元字符一半不需要转义
字符组的转义
正则转义
[ 0-9a-zA-Z] 范围中的任意数
[^0-9 ] 非0-9范围的任意数
| 或者 a|b|c 其中的一个或者多个
范围
正则表达式
0 条评论
回复 删除
下一页