博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式速查笔记
阅读量:6892 次
发布时间:2019-06-27

本文共 1570 字,大约阅读时间需要 5 分钟。

阅读《正则表达式必知必会》小册子,做一点摘要,以备用查之。

必备网站


正则表达式作用

查找或操作字符串

操作符

操作符 功能 示例
. 匹配任何单个字符
[ ] 匹配多个字符的某一个
[ 0-9A-Za-z] 利用字符集合区间
^ 取非匹配 [^0-9]
+ 匹配一个或多个连续的字符
* 匹配零个或多个连续的字符
? 匹配零个或一个字符 https?匹配http和https
{6} 匹配重复次数 [[:xdigit:]]{6}
{2,4},{3,} 匹配重复次数设定区间
*?、+?、{n, }? 懒惰型元字符
\b 匹配单次的开始或结尾 \bcap 匹配cape不匹配recap
\B 不匹配单次的开始或结尾
^ 定义字符串开头
$ 定义字符串结尾
(?m) 分行匹配
( ) 子表达式 ( ){2, } 或 (19‘竖线’20)\d{2}
(?= ) 向前查找 .+(?=:)匹配https://中的https,注意没有冒号
(?<= ) 向后查找
(?! ) 负向前查找 向前查找不与给定模式匹配的文本
(?<! ) 负向后查找
|特殊字符转义 \[

回溯

回溯中的引用 例如: [ ]+(\w+)[ ]+\1 匹配 and and

回溯中的替换 正则表达式 (\d{3})(-)(\d{3})(-)(\d{4}) 替换 ($1) $3-$5313-555-1234替换成(313) 555-1234

回溯中的条件 (aaaa)? (?(1)aaaa) \d{5}(?(?=-)=\d{4}) 匹配22222, 44444-4444 但不匹配33333-

回溯中的替换的大小写

例如: 正则表达式 (<[Hh]1>)(.*?)(</[Hh]1>) 替换 $1\U$2\E$3<h1></h1>之间内容转成大写

操作符 说明
\E 结束\L或\U的转换
\l 把下一个字符转换成小写
\L 把\L到\E之间的字符全部转换成小写
\u 把下一个字符转换为大写
\U 把\U到\E之间的字符全部转换为大写

特定字符类别

操作符 说明
\d 任何一个数字字符,等价于[0-9]
\D 任何一个非数字字符,等价于[^0-9]
\w 任何一个字母数字字符(大小写均可)或下划线,等价于[a-zA-Z0-9_]
\W 任何一个非字母数字或下划线字符,等价于[^a-zA-Z0-9_]
\s 任何一个空白字符,等价于[\f\n\r\t\v]
\S 任何一个非空白字符,等价于[^\f\n\r\t\v]

POSIX字符类

字符类 说明
[:alnum:] 任何一个字母或数字[a-zA-Z0-9]
[:alpha:] 任何一个字母
[:blank:] 空格或制表符
[:cntrl:] ASCII控制字符(ASCII 0到31,在加上ASCII 127)
[:digit:] 任何数字
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 任何小写字母
[:print:] 任何可打印字符
[:punct:] 既不属于[:alnum:]也不属于[:cntrl:]的任何一个字符
[:space:] 任何一个空白字符,包括空格
[:upper:] 任何一个大写字母
[:xdigit:] 任何一个十六进制数字[a-fA-F0-9]

空白字符

元字符 说明
\b 回退(Backspace)
\f 换页
\n 换行
\r 回车符
\t 制表符
\v 垂直制表符

备注

  • 正则表达式区分大小写
  • DOS或windows系统文件路径是 反斜杠
    Linux或Unix为正斜杠 /
  • 匹配十六进制值 eg: \x0A 对应于ASCII字符10,效果等价于\n
  • 匹配八进制值 eg: \011 对应于ASCII字符9,效果等价于\t

转载地址:http://ashbl.baihongyu.com/

你可能感兴趣的文章
聚米微商好做吗 、为什么这么多人都在做聚米婧氏品牌呢
查看>>
互联网企业安全高级指南3.11 业务持续性管理
查看>>
Vertica的这些事&lt;八&gt;—— vertica加密数据
查看>>
python 自定义 包 模块 打包 安装
查看>>
ubuntu桌面的标题栏和启动栏消失问题[亲测可用]
查看>>
Cloud technology in today's job market
查看>>
3月31日云栖精选夜读:数据科学咨询:想要转型毫无头绪?看了本文你不慌
查看>>
程序猿日记S01E03
查看>>
如何解决域名解析不生效问题?
查看>>
Android开发者指南(9) —— ProGuard
查看>>
MySQL · 答疑解惑 · 物理备份死锁分析
查看>>
字符串指针修改问题
查看>>
JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
查看>>
跨入流式计算时代,用不着洪荒之力——在阿里云容器服务上一键部署JStorm
查看>>
通过JCONSOLE监控TOMCAT的JVM使用情况
查看>>
jquery editable plugin--点击编辑文字插件
查看>>
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
javascript 常用自定义方法
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
CSS 选择器
查看>>