常用工具-正则表达式

1. 匹配单个字符

. 可以匹配任意单个字符。(大部分不能匹配换行符)

2. 匹配一组字符

[ ]定义一个字符集合;0-9、a-z定义一个字符区间;^取非操作。

abc[^0-9]  //abc开头,最后一位不为数字

3. 元字符

3.1 匹配空白字符

元字符说明
[\b]回退一个字符
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符

3.2 匹配特定字符

元字符说明
\d数字字符,等价[0-9]
\D非数字字符,等价[^0-9]
\w大小写+下划线+数字,等价[a-zA-Z0-9_]
\W对上面的取非,等价[^a-zA-Z0-9_]
\s任何一个空白字符,等价[\f\n\t\v\r]
\S对上取非

4. 重复匹配

  • + 匹配1个或多个字符
  • * 匹配0个或多个字符
  • ?匹配0个或1个字符
    +和*是贪婪型元字符,会尽可能多地匹配内容,?是懒惰型。
[\w.]+@\w+\.\w+    //匹配邮箱地址
a.+c    //这个就能匹配abcabcabcabc
  • {n} 匹配n个字符
  • {m,n} 匹配m~n个字符
  • {m, }至少匹配m个字符

5. 位置匹配

  • \b 匹配一个单词边界
  • \B匹配非单词边界的位置
  • ^ 匹配字符串开头
  • $ 匹配结尾
^\s*\/\/.*$   //匹配以//开头的注释行

6. 子表达式

  • () 定义子表达式
  • | 把左边和右边看成两个部分,只要有一个匹配就可
(ab){2,}  //匹配至少两个ab相连
(19|20)\d{2}  //匹配19或者20开头的年份

7. 回溯引用

\n表示引用第n个子表达式,其与引用的子表达式匹配内容一致。

<(h[1-6])>\w*?<\/\1>    //匹配HTML的标题元素<h1>x</h1>

8. 替换

//查找正则表达式
(\d{3})(-)(\d{3})(-)(\d{4})
//替换正则表达式
//在第一个子表达式查找的结果加上 () 
//然后加一个空格
//在第三个和第五个字表达式查找的结果中间加上-进行分隔。
($1) $3-$5

8.1 大小写转换

元字符说明
\l把下个字符转换为小写
\u把下个字符转换为大写
\L把\L 和\E 之间的字符全部转换为小写
\U把\U 和\E 之间的字符全部转换为大写
\E结束\L 或者\U
(\w)(\w{2})(\w) //查找正则
$1\U$2\E$3  //将第二个和第三个字符转为大写

9. 前后查找

  • ?= 向前查找,匹配文本不出现在匹配结果里,必须在子表达式中使用。
.+(?=:)  //匹配网址,返回http而不是http:
  • ?<= 向后查找,匹配文本不出现在匹配结果里,必须在子表达式中使用。
(?<=\$)[0-9.]+  //匹配金钱数目,返回23.54而不是$23.54
  • 取非操作用!

10. 嵌入条件

  • 回溯引用条件:先判断某个子表达式,若匹配则继续匹配后续内容。
//(\() 匹配一个左括号
//?(1) 当表达式1匹配,则继续后续匹配,这里是匹配右括号
(\()?abc(?(1)\))
  • 前后查找条件:在向前查找或向后查找操作取得成功后,才继续匹配后续内容。极少用到。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值