程序猿刚子的博客

大龄程序猿,分享互联网开发相关知识!前端、后端,架构等内容,欢迎关注公众号 chengxuyuangangzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  96 随笔 :: 14 文章 :: 110 评论 :: 27万 阅读

创建一个正则表达式

一个正则表达式对象有两种创建方法:

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所以此匹配表达式返回null
 
13.正向预查 形式:(?=pattern) 匹配的字符串后面必须紧跟pattern  (?!pattern) 匹配的字符串后面不能跟随pattern
 
14.匹配元字符 当匹配 *, +, ?这些字符的时候要专一 \*, \+, \?
 
正则表达式的修饰符
1.全局匹配, 修饰符g 形式: /pattern/g
 
2.不区分大小写匹配, 修饰符i  形式:/pattern/i
 
3.行首行尾,修饰符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

 

 

 

 

 


 

 

posted on   程序猿刚子  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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的设计模式综述
点击右上角即可分享
微信分享提示