正则表达式
2020-10-26 19:33:25 2 举报
AI智能生成
正则表达式总结
作者其他创作
大纲/内容
正则表达式
. 任意字符(换行符除外,即一行内的任意字符)
\\d 任意数字; \\D 任意非数字
\\w 任意数字、字母、下划线; \\W除数字、字母、下划线以外的任意字符
\\s 任意空白字符; \\S 任意非空白字符
注:以上都是匹配单个字符
基础
\ 回车符
\ 换行符
\\f 换页符
\\t 制表符
\\v 制表符
注:不同系统的文本换行符不一样,比如window系统每行结尾是\\;linux和mac每行结尾是\
空白符
* 含义:0到多次
+ 含义:1到多次
? 含义:0到1次
{m} 含义:m次
量词
| 含义:或 例如ab|bc表示ab或bc
[.....] 含义:多选一,匹配括号中任意一个元素
[^.....] 含义:不能是括号中的任意单个元素
[a-Z] 含义:匹配a到Z之间的任意字符(按ASCII表顺序)
例如手机号表示:1[3456789]\\d{9},1[3-9]\\d{9},1[^012]\\d[9]三种写法
范围
^ 匹配行的开头(多行模式,整个文本的每一行开头都会检测匹配)
$ 匹配行的结尾(多行模式,整个文本的每一行结尾都会检测匹配)
\\b 匹配单词边界 例如:\\bthe\\b能匹配上单词the,匹配不上there
\\A 匹配整个字符串(文本)开头而不是每行(不支持多行模式)
\\Z 匹配整个字符串(文本)结束而不是每行(不支持多行模式)
边界
元字符
非贪婪:量词后加?(应为问号),找出长度最小且满足要求的字符
\"the little cat\"
\"a little bad\"
\"the little cat\
符合正则要求的内容(\"\"双引号是有正反的,不然有六个字符串符合要求)
找到引号内容最长的(如一样长取第一个)
匹配结果:\"the little cat\
贪婪正则:\".+\"
找到引号内容最短的内容(如一样长取第一个)
匹配结果:\"a little bad\".
非贪婪正则:\".+?\"
例如字符串:\"the little cat\
贪婪&非贪婪
X(?<=Y) 匹配前面是Y的X
X(?<!Y) 匹配前面不是Y的X
X(?=Y) 匹配后面是Y的X
X(?!Y) 匹配后面不是Y的X
匹配结果:item1和item2
正则:(?<=<li>)(.+)(?=</li>)
例如:<ul> <li>item1</li> <li>item2</li></ul>
环视
(正则表达式) 将regex保存成一个子组
(?P<name>正则表达式) 命名子组为name,将regex保存成名为name的子组
(?:正则表达式) 仅分组,不保存这个组
\\分组编号 重复某个子组
文本:the cat cat is in the the hat.
解释:(\\w+)会匹配一个单词,并保存为子组1
\\1 标识前面保存的子组中,重复第一个子组
正则:(\\w+) \\1
匹配结果:cat cat 和 the the两个字符串
正则替换:上面匹配到的字符串替换为子组1 \\1
结果文本:the cat is in the hat.
例如:去重文本中相邻的两个一样的单词
子组
0 条评论
回复 删除
下一页