《精通正则表达式》读书笔记

本文深入探讨了正则表达式的使用技巧,包括字符组、元字符、脱字符、括号的功能及其在不同场景下的应用。通过实例解析,帮助读者理解如何在复杂性和完整性之间寻找平衡,并提供优化引擎在匹配过程中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)一个字符串,即使是一个排除型字符组,也需要匹配一个字符,如:正则表达式 /e[^q]/ 是不能匹配 apple 这个单词的(在e后面并没有跟换行符的前提下);

2)在字符组里,元字符的定义和意义是完全不一样的,尤其是连字符“-”,在字符组中,它往往用于匹配一个范围,除非它是紧跟在“[”后面的,这里它匹配的就是“-”本身,而不作为范围识别的用途。所以,要切记,在字符组中,如果“-”是作为普通字符而不是元字符进行匹配时,一定要将连字符放在最前面,当然,还有另外一种解决办法是转义,不过这样一来又会增加表达式的复杂度了。所以还是尽量放在前面啦;

关于这个问题的原文摘录:在字符组内部,元字符的定义规则(及它们的意义)是不一样的。例如,在字符组外部,点号是元字符,但是在内部则不是如此。相反,连字符只有在字符组内部(这是普遍情况)才是元字符,否则就不是。脱字符在字符组外部表示一个意思,在字符组内部紧接着“[”时表示另外一个意思,其他情况下又表示别的意思。

3)脱字符“^”在字符组中,则表示不匹配它自己后面紧跟的字符,如果在字符组外,则是从开头处开始匹配的意思;

4)表示重复的元字符“?”、“*”、“+”的异同:

表示重复的元字符“?”、“*”、“+”的异同
次数下限次数上限说明
01可以不出现,如果出现最多只能出现一次
*0可以出现任意多次
+1至少出现一次,上不封顶

5)如果想要在复杂性与完整性之间寻求一个平衡,一个重要的因素是了解清楚待匹配的对象;

6)正则表达式中括号的三种功能:

6.1)限定多选结构的范围; 如:ab(c|d|e)fgh,注意上述写法与去掉括号时 abc|d|efgh 的区别

6.2)标注量词作用的元素;如:ab(cde)+fgh,注意上述写法与去掉括号时 abcde+fhg的区别

6.3)为引用捕获文本;作为这个用法加括号是为了返回或引用匹配结果

7)非捕获型括号:(?:)

8)如果多选分支是有序的,而且能够匹配同样文本的分支不只一个,那就必须要特别注意多个分支的排列次序

9)优化引擎从来不会在字符串开头以外的地方尝试带^锚点的表达式,因为这样可能会严重影响匹配的效率


资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值