前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习正则(第二天)位置匹配

学习正则(第二天)位置匹配

作者头像
前端小鑫同学
发布2022-12-26 09:10:51
2420
发布2022-12-26 09:10:51
举报
文章被收录于专栏:小鑫同学编程历险记

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~

正则中的位置就相当于我们数组的下标,标识字符所在的位置,那我们在正则里面用来标示位置的关键字都有哪些呢?

01. 匹配开头:脱字符(^)

001. 是否符合开头(匹配)

正则:/^he/gm

正例:helloworld

反例:worldhello

说明:如下图所示,正例字符串符合已he开头,成功命中。

image.png
image.png
002. 开头插入字符(替换)

正则:/^/gm

待替换字符:helloworld

替换结果:

image.png
image.png
image.png
image.png

02. 匹配结尾:美元符($)

001. 是否符合结尾(匹配)

正则:/ld$/gm 正例:helloworld 反例:worldhello 说明:如下图所示,正例字符串符合已ld结尾,成功命中。

image.png
image.png
002. 结尾插入字符(替换)

同开头插入字符

单词\非单词边界:\b、\B

\b单词边界指的就是单词字符\w和非单词字符\W之间的位置,也包含单词字符到有脱字符的开始位置和单子字符到有美元符的结束位置,\B反之,具体看下图进行理解:

image.png
image.png
image.png
image.png

03. 命中p的前面位置:(?=p)

正则:/(?=o)/gm

说明:如下图所示,成功找到字符串中每个o前面的位置。

image.png
image.png

04. 命中除了p前面的其他位置:(?!p)

正则:/(?!e)/gm

说明:如下图所示,成功找到字符串中除了e前面的其他位置。

image.png
image.png

如下图整理了正则中的位置的图示,因语言兼容版本的问题,更多了可以自行补充一下:

image.png
image.png

05. 案例分析:

001. 千分位显示数字
  1. 数字字符表示:\d
  2. 千分位量词:{3}
  3. 位置替换字符:(?=p)
  4. 从末尾往首进行命中

第一版:

image.png
image.png

呀?齐了怪了,只匹配到了一个位置?那我们想匹配多次怎么办?使用+呗,但我们要用()进行一下分组;

第二版:

image.png
image.png

现在可以看到匹配的位置多余命中了首位,那怎么去除呢?试试这个(?!^)

第三版:

image.png
image.png

最终正则的图示:

image.png
image.png

稍加扩展: 当我们的字符串的内容稍加改变后,我们上面的正则将变得不那么顺手,请看下图:

image.png
image.png

那这个问题又该怎么办呢?开始的控制开始和结束的位置变的失效了,我们分析一下,字符串中每个1的前面和8的后面都属于单词的边界,那我用使用\B来匹配非单词的边界即可,每组结束的位置又是单词边界我们用\b表示,请看如下图:

image.png
image.png
image.png
image.png
image.png
image.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 匹配开头:脱字符(^)
    • 001. 是否符合开头(匹配)
      • 002. 开头插入字符(替换)
      • 02. 匹配结尾:美元符($)
        • 001. 是否符合结尾(匹配)
          • 002. 结尾插入字符(替换)
          • 单词\非单词边界:\b、\B
          • 03. 命中p的前面位置:(?=p)
          • 04. 命中除了p前面的其他位置:(?!p)
          • 05. 案例分析:
            • 001. 千分位显示数字
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档