正则表达式中 [\s\S]* 什么意思 居然能匹配所有字符 [] 不是范围描述符吗?

发布于 2019-05-23 13:41:35 字数 885 浏览 2276 评论 0

一般情况下,正则表达式中的 [a-z] 表示从 a 到 z 之间的任意一个,但是想要匹配所有字符就必须使用 [\s\S]* ,难道和前面的介绍的不一样不是范围描述符。

其实 [\s\S]* 是完全通配的意思,\s 是指空白,包括空格、换行、Tab 缩进等所有的空白,而 \S 刚好相反

这样一正一反下来,就表示所有的字符,完全的、一字不漏的。

另外 [] 这个符号,表示在它里面包含的单个字符不限顺序的出现,比如下面的正则:

[ace]*

这表示,只要出现 a/c/e 这三个任意的字母,都会被匹配

  • [\s] 表示,只要出现空白就匹配
  • [\S] 表示,非空白就匹配

那么它们的组合,表示所有的都匹配,与它相对应的,有 [\w\W] 等,意义完全相同、

另外要说的一点是,为什么有 . 这个通配符了,还要这样的用法。

其实,[\s\S] [\w\W] 这样的用法,比较 . 所匹配的还要多,因为 . 是不会匹配换行的,所有出现有换行匹配的时候,人们就习惯使用 [\s\S] 或者 [\w\W] 这样的完全通配模式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文