1. 首页
  2. JavaScript
  3. 正文

JavaScript正则表达式特殊字符:”\b“

2023年10月19日 390点热度 0人点赞 0条评论

"\b":用于匹配一个英文单词的边界。什么是单词的边界?一、字符串的起始和末尾,二、除大小写字母、数字、下划线之外的字符(包括开头结尾、换位符等),也就是"\W"的范围:`[^A-Za-z0-9_]`。但是“\b”本身不匹配这些字符,他只是用于来表示正则表达式中英文单词的边界。

来看下面这个Demo:

const regexp = /\b\w+\b/g;
const text = [
  'Make small but daily progress.',
  'Make-small-but-daily-progress.',
  'Make/small/but/daily/progress.',
  'Make每small天but进daily步progress.'
]

text.forEach((textItem) => console.log(textItem.match(regexp)));
// 输出四次同样的返回值:[ 'Make', 'small', 'but', 'daily', 'progress' ]

当使用”\b“去匹配字符串中单词的时候,会得到上述结果。所以看出来划分单词边界的字符不仅仅是空格了,事实上连"-"字符都算做是用来区分单词边界。

但是请注意,不要试图使用"\b"匹配字符串中用来区分英文单词边界的字符,上面说过,因为它并不匹配区分边界的字符。换句话说,当你使用它去匹配一组字符串时,匹配结果的内容将会是一个空的字符串。

const text = 'Hello world!';
const regexp = /\b/g;
console.log(text.match(regexp));
// 输出的结果:[ '', '', '', '' ]

因为区分单词边界的还有行首行尾和起始末尾,所以上述的结果中的两个单词存在四个边界。但记住,"\b"匹配的内容的永远为空。

同时这也意味着,"/\w\b\w/"将不能匹配任何字符串内容,因为在一个单词中间部分,永远也不可能存在一个区分单词边界的字符,否则那样的话就是两个单词了。

标签: \b JavaScript 正则表达式
最后更新:2023年10月22日

Evans Ann

It's no use crying over spilt milk.

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2023 年 11 月
  • 2023 年 10 月
  • 2021 年 1 月
  • 2020 年 8 月
  • 2020 年 1 月
  • 2019 年 8 月

分类目录

  • Docker
  • JavaScript
  • Kubernetes
  • Linux
  • PHP
  • Windows
  • 基础
  • 正则表达式
  • 英语

COPYRIGHT © 2018-2024 秋雨沥沥. ALL RIGHTS RESERVED.

赣ICP备18001671号-3