创建一个正则表达式
一个正则表达式对象有两种创建方法:
1.var reg = /pattern/;
2.var reg = new RegExp("patten");
正则表达式的exec方法
reg.exec(str); //其中str为要执行正则表达式的字符串, 返回一个object对象,该对象有index:匹配内容在字符串中的索引,input:输入的字符串,str
正则表达式中的规则(贪心规则:匹配尽可能多的字符,若想匹配尽可能少的则在表示数字的符号后面加一个?, 如:{m, n}?
1.{n}匹配n次,{m,n}匹配m-n次 {n,}匹配>=n次
2. *表示{0,} +表示{1,} ?表示{0, 1}
3./^匹配字符串的开头, $/匹配字符串的结尾
4. “.",匹配字符串中除了换行符\n之外的所有字符,单个字符匹配
5."|", 或者运算符 b|c 匹配b或者c
6.括号,括号内为子正则表达式
reg = /^(b|c).+/; 匹配以b或者c开头以及其后所有的非换行字符,返回结果中子正则表达式的内容也会在结果中
若想不记录子正则表达式中匹配的结果,那么可以使用如下形式 (?:pattern) 就不会保存子表达式匹配的内容了
7.字符集合[abc]:表示a或者b或者c中的任意一个字符 ,反字符集合[^abc]不能是a或者b或者c
8.边界与非边界 :只有开头或者结尾的字符才算数 /b:边界 /B:非边界
9.数字与非数字: /d:表示数字 /D:表示非数字
10.空白 \f:匹配换页符 \n:匹配换行符 \r:匹配回车符 \t:匹配制表符 \v:匹配垂直制表符 \s:匹配单个空格等同于[\f\n\t\v]
11.单词字符\w 等同于 [a-zA-Z0-9_] 非单词符\W
12.反向引用 /(子正则表达式)\1/
reg = /(\w)(\w)/;
str='blueidea'; execReg(reg,str);
返回bl,b,l 注:bl为主正则表达式匹配的内容, b为子1表达式匹配内容, l为子2表达式匹配内容反向引用可以引用子表达式匹配的内容
reg = /(\w)\1/; str='blueidea'; execReg(reg,str); //\1引用了\w匹配的字符b所以此匹配表达式返回null13.正向预查 形式:(?=pattern) 匹配的字符串后面必须紧跟pattern (?!pattern) 匹配的字符串后面不能跟随pattern14.匹配元字符 当匹配 *, +, ?这些字符的时候要专一 \*, \+, \?正则表达式的修饰符1.全局匹配, 修饰符g 形式: /pattern/g2.不区分大小写匹配, 修饰符i 形式:/pattern/i3.行首行尾,修饰符m 形式:/pattern/m m修饰符的作用是修改^和$在正则表达式中的作用,让它们分别表示行首和行尾。例如:test方法:检查是否能匹配str, 返回布尔型值表示 reg.test(str)字符串的方法执行正则表达式match方法: 形式:str.match(reg)注:当没有用g修饰符时和exec方法相同,如果加入g修饰符则返回包含所有匹配内容的对象数组replace方法: 形式:str.replace(reg, 'new str'); //原字符串不会被修改,需要重新赋值在replace方法中可以使用$引用子正则表达式匹配内容search方法: 形式:str.search(reg); //返回第一次匹配的位置原文参考:http://www.cainiao8.com/web/js_note/js_regular_expression.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述