读书笔记:js权威指南第十章(四)-正则学完的一个简单测试

本文分析了一次正则表达式测试的结果,详细讨论了错误题目的正确解答及原因,涉及多个正则表达式的高级用法,如懒惰匹配、反向引用等。

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

首先是题目链接,感谢大佬的题目:https://zhuanlan.zhihu.com/p/66605402
然后是这次测试的结果分析。、
1,第四题。结果为b,我的结果为d。首先是题目匹配一个字符串中两个相邻单词,这基本的思路就是中间用\s或者\b来进行分隔,然后关键的一点,也就是我错的原因,主要就是\1了。这里\1下意识的感觉是和之前一样匹配一个单词,但是,()的匹配这里引用的话必须返回一个一样的单词才算,所以不能使用。这一点确定,答案出来了。但是这个b选项我怎么看也只能匹配一个单词呀,很奇怪。

A./\b(\b+)\s+\1\b/

B./\b(\w+)\s+\b/

C./\b(\w*)\s+\1\b/

D./\b(\w+)\s+\1\b

2.第6题主要是用到了一个(.*?)这一题错的主要原因是.的意思忘记了,.表示匹配任意字符,在匹配中文的时候可以用到,*?表示惰性匹配,能匹配少就匹配少,放在这里是完全可以的,emmm选了c:(*),我也不知道在干啥。。。
3.8题选D,我选的是a,这个主要是和上题一样,.的使用没有记住。
4.11题 概念性问题,我把regexp的对象属性和string的方法搞混了,string就是操作regexp对象的
5。14题,这个题为什么选a,没有找到相关资料,暂时解释不了。

匹配一个英文句子(假设句子最后没有标点符号)最后一个单词的正则表达式有( )。

A.\b(\w+)\s*$

B.\b(\w+)\s+$

C.\s(\w+)\s*$

D.\b(\w+)\b*$  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值