正则表达式学习
参考教程
正则表达式 - 语法
说明:速查速记,学习参考网址已足够。可以配合练习网址食用。
正则表达式格式
/pattern/flag,其中pattern为模式串,flag为修饰符
普通字符
不赘述。a-zA-Z0-9_
\s匹配空白符(包括换行),\S匹配非空白符\w匹配字母数字下划线(等价于匹配程序的identifier)\d匹配所有数字字符.代表任意字符(不包括换行符,除非修饰符为s)
非打印字符
重要的就\n\r这两个换行符及制表符\t
限定符
作用是指定前面的字表达式出现几次:
?:匹配0-1次,等价于{0,1}*:匹配0到无数次,等价于{0,}+:匹配1到无数次,等价于{1,}{m,n}:匹配m到n次,m和n可以没有,逗号表范围{m}:匹配m次
贪婪与非贪婪匹配
由?控制,例:对于待匹配串<h1>str<h1>,模式串<.*?>为非贪婪模式,仅匹配<h1>,如果为<.*>,默认为贪婪模式,匹配<h1>str<h1>
定位符
^:匹配字符串开始位置,注意修饰符如果是m,则还会匹配换行符\n\r后的位置$:匹配字符串结束位置,特性同^\b:匹配单词边界(空格)\B:匹配非边界
例:\Bcha可以匹配到achaa,但chapter不行,但\bcha反之。^cha可以匹配chapter。
选择
使用|即可。
例:a(a|b)a可以匹配aba和aaa.
正向预查和负向预查
记忆:带<为负向预查,否则为正向。
exp1(?=exp2):查找exp2前面的exp1(?<=exp2)exp1:查找exp2后面的exp1exp1(?!exp2):查找后面不是exp2的exp1(?<!exp2)exp1:查找前面不是exp2的exp1
反向引用
不是很了解,暂略
修饰符
i:不区分大小写g:全局匹配m:多行匹配,对^和$有影响s:特殊字符圆点.包含换行符\n
- Title: 正则表达式学习
- Author: spiritTrance
- Created at : 2023-08-17 12:47:19
- Updated at : 2025-01-29 10:43:44
- Link: https://spirittrance.github.io/2023/08/17/linux_正则表达式学习/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments