正则表达式学习(二)
全局和大小写同时匹配
var re = new RegExp("a","gi");
var re1 = /a/gi;
.exec()使用子匹配,用()来创建子匹配
var str = "Ubuntu 8.10";//取出主版本号和次版本号
var re = /^[a-z]+\s+(\d+)\.(\d+)$/i;//这里的两个(\d+)就是子匹配
var arr = re.exec(str);//当字符串不匹配re时返回null
alert(arr[0]);//完整的str
alert(arr[1]);//8
alert(arr[2]);//10
字符串.replace(re)用来替换空白字符
var str = "some some \tsome\t\f";
var re = /\s+/g;
alert(str.replace(re,"#"));//some#some#some#
字符串.split(re)用来替换不同的分隔符
var str = "a_bc-d";
var re = /[^a-z]/i;//匹配除字母外所有字符
alert(str.split(re));//返回["a","bc","d"]
字符串.match(re)匹配并返回结果数组
var str = "one two three four";
var re = /\b[a-z]*\b/gi; //\b表示单词边界
alert(str.match(re)); //one,two,three,four
re.source属性 返回正则表达式"模式"的文本的复本
var re = /[a-z]/i;
alert(re.source); //输出结果 [a-z]
alert(re); //输出结果 /[a-z]/i,相当于re.toString
re.lastIndex属性 指被查找字符串中下一次成功匹配的开始位置,默认值-1,可被exec和test方法修改
var re = /[A-Z]/g;
var str = "Hello,World!";
var arr = re.exec(str); //H
alert(re.lastIndex); //1
arr = re.exec(str); //W
alert(re.lastIndex); //7
当匹配失败(后面没有匹配),或lastIndex值大于字符串长度时,再执行exec方法会将lastIndex设为0(开始位置)
var re = /[A-Z]/;
var str = "Hello,World!";
re.lastIndex = 120;
var arr = re.exec(str);
alert(re.lastIndex);//0
用re.exec()+re.lastIndex获取字符串中的数字
1 2 3 4 5 6 7 8 9 10 11 | var String = "" ; var re = /\d+/g; var str= "adf0sdf1asdf2sff3asdfas4asfdafd5asfasf6fsdafasf7asdfas8asdf9asa" ; String = String + re.exec(str); while (re.lastIndex != 0){ var arr = re.exec(str); if (arr != null ){ String = String + arr; } } alert(String); //0123456789 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)