JS正则表达式进阶

贪婪量词   惰性量词    支配量词                      描述
-------------------------------------------------------------------------------------
  ?             ??             ?+                      可以出现0次或1次,但至多出现1次
  *             *?            *+                      可以出现任意次,也可以不出现
  +             +?            ++                      出现1次或多次,但至少出现1次
  {n}        {n}?           {n}+                   一定出现n次
  {n,m}    {n,m}?       {n,m}+               至少出现n次,但至多不能超过m次
  {n,}       {n,}?          {n,}+                 可以出现任意次,但至少出现n次 

 

JS不支持支配量词

分组:

在JavaScript和Java中,捕获性分组所匹配的内容都是以$1,$2,$3...的格式保存的!

如:

var now = "25/10/2009";
/(\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);
alert(RegExp.$3+"-"+RegExp.$2+"-"+RegExp.$1); //2009-10-25

1.子正则表达式 形式:/(子正则表达式)/

alert(/(\w)\w/.exec('helloword')); //he, h  第一个he是全匹配,第二个h是()里的子表达式匹配,所以()就是一个子表达式。也就是分组捕获内容。

分组捕获内容按左小括号计算,$1, $2...

分组捕获内容可以在外部使用,也可以在正则表达式内部使用(有点象程序变量,这时候叫反向引用)

外部使用:

var v = '1234 5678'.replace(/(\d{4}) (\d{4})/, "$2 $1");
alert(v); //5678 1234;

内部使用:

零宽断言
正则       名称       描述
(?=exp) 正向前瞻 匹配exp前面的位置
(?!exp) 负向前瞻 匹配后面不是exp的位置
(?<=exp) 正向后瞻 匹配exp后面的位置不支持
(?<!exp) 负向后瞻 匹配前面不是exp的位置不支持

正向前瞻用来检查接下来的出现的是不是某个特定的字符集。而负向前瞻则是检查接下来的不应该出现的特定字符串集。零宽断言是不会被捕获的。

 

posted @   人工智能-群513704292  阅读(624)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2013-05-06 对编程语言,库,框架,平台的一点思考
点击右上角即可分享
微信分享提示