正则梳理

Bash
• 阅读 916

1在线工具:https://regexper.com/
\d数字 {4}数量 [ ]或者 ^开头 $结尾 ()分组$1,2,3代表小括号分出的组 \b单词边界 / /转义
2.regexp对象
字面量

var reg=/ \bis\b / g 全局 / /代表定义一个正则表达式
a.replace(reg,'IS')

构造函数
var reg=new RegExp('\bis\b','g') //接受俩参数,1.字符串 正则表达式的文本 2.字符串'g' 'i'
忽略大小写 'm'多行搜索
3元字符
原意文本字符
abc123
元字符(是在正则表达式中有特殊含义的非字母字符)
*+?$^.|(){}[]
\b匹配一个单词边界
\水平制表符 \v垂直制表符 \r回车符 \0空字符 \f换页符 \cX与X对应的控制字符
字符类取反^
1不是字符a或b或c的内容
范围类 -闭区间 连续字符
[a-zA-Z]a-z的任意字符
预定义类
.除了回车换行外的所有字符
\d数字字符
\D 非数字字符
\s空白符
\S非空白符
\w单词字符
常用的边界匹配字符
^以...开始
$以...结束
\b \B单词边界 非单词边界
量词
?出现0次或1次(最多一次)
+至少要出现一次
*出现任意次
{n}出现n次
{n,m}出现 n次到m次
{n,}至少出现n次
贪婪模式
尽可能多的匹配 /\d{3,6}/g/按6匹配

'123456789'.match(/\d(3,5)?/g/)非贪婪模式 ['123','456','789']

分组
()(aaa){3}

|(/by(on|ca)sper)/)
反向引用
$ eg:a.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1')
忽略分组
不希望捕获某些分组 只需要在分组内加上?:就可以
(?:Byron).(ok)

前瞻
符合和不符合特定断言称为肯定/正向匹配和否定/负向匹配

前瞻 (?=) (?!)
js不支持后顾
.replace(/\w(?=\d)/g,X)断言不参与匹配内容
对象属性
igm
lastIndex下一次搜索的开始位置 上次匹配的结果的最后一个字符的下一个
source正则表达式的文本字符串(文本内容部分)
test方法
正则表达式在调用时 会改变lastindex
exec(str)方法
非全局调用:
返回数组
lastindex不生效 匹配文本最后一个字母的下一位下标
ret=reg3.exec(ts)
ret.index 匹配结果从字符串的第几位开始的
ret 0:与正则相匹配的文本
1:符合第一个分组的内容
字符串对象的方法

.search() 返回1或者-1
.search(1)
.match(reg)找和正则相匹配的文本 返回数组
.index .input
.split(,/reg)
.replace(reg,rstr)
.replace(reg,func)

fuc含义
1.匹配的字符串,match
2.正则表达式分组的内容
3.匹配项在字符串中的index
4.原字符串origin

'a1b2c3d4e5'.replace(/\d/g,function(match){
return parseInt(match)+1
})

  1. abc
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
SSH 证书登录教程
点击关注上方“杰哥的IT之旅”,后台回复“Python自动化(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247491317%26id
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
VS Code 的 7 个开源替代品!
点击关注上方“杰哥的IT之旅”,后台回复“Python自动化(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247491317%26id
Stella981 Stella981
3年前
Docker 入门终极指南:边学边用
点击关注上方“杰哥的IT之旅”,后台回复“Python自动化(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247491317%26id
Wesley13 Wesley13
3年前
2020年8月程序员工资统计,平均14401元,下跌势头止住了!
点击关注上方“杰哥的IT之旅”,后台回复“Python自动化(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247491317%26id
Stella981 Stella981
3年前
GitHub 数据告诉你:最幸福的码农在用什么编程语言?
点击关注上方“杰哥的IT之旅”,后台回复“Python自动化(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247491317%26id
Stella981 Stella981
3年前
AJPFX总结关于Java中过滤出字母、数字和中文的正则表达式
1、Java中过滤出字母、数字和中文的正则表达式(1)过滤出字母的正则表达式\^(AZaz)\(2)过滤出数字的正则表达式\^(09)\(3)过滤出中文的正则表达式\^(\\\\u4e00\\\\u9fa5)\(4)过滤出字母、数字和中文的正则表达式\^(azAZ09\\\\u