关于正则表达式,.*组合使用问题
. 元字符用于查找单个字符,除了换行和行结束符。
*元字符用于匹配它前面的单个字符零次或者多次。
(1)模式为:B.*Forta ,字符串BForta可以被匹配到
let str = 'BForta';
str.match(/B.*Forta/);
疑问点:这里.*到底是匹配到什么?
let str = 'Ben Forta';
str.match(/B.*Forta/);
疑问点:这里.*匹配到什么?
(2)模式为:B.* Forta ,字符串Ben Forta可以被匹配到
let str = 'Ben Forta';
str.match(/B.* Forta/);
疑问点:这里的.*又是匹配到什么?
一直没想明白 .元字符只是匹配除换行和结束符的单个字符,它后面的*元字符也只是匹配.匹配到的那个单字符的基础上匹配零次或者多次。
为啥上面的三种情况,.*可以匹配到?希望可以单独解释下它们两个分别匹配到什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
模式为:B.*Forta ,字符串BForta可以被匹配到
在线工具解析:
代码解析:
模式为:B.* Forta ,字符串Ben Forta可以被匹配到
在线工具解析:
代码解析:
总结:
.就是任意字符,*就是任意次数,*并不是前一个匹配“字符”的重复,而是匹配“模式”的重复。
它后面的\*元字符也只是匹配.匹配到的那个单字符的基础上匹配零次或者多次。
这句话是错误的。就拿斗地主来比喻,你手上有三张癞子牌,你使用其中一个当作5,但是另外两张癞子不是被锁定为5的。
第一个案例,是
*
在起作用,他为0,匹配到的是空字符串第二个案例,
.
匹配到了e、n和空格第三个案例,
.
匹配到了e、n