摘要:在本教程中,您将学习如何在正则表达式中使用词边界。
(\b) 是一个 锚点,类似于插入符号 (^) 和美元符号 ($)。它匹配称为“词边界”的位置。词边界匹配是零长度的。
以下三个位置被视为词边界
- 如果第一个字符是词字符,则位于字符串第一个字符之前。
- 如果最后一个字符是词字符,则位于字符串最后一个字符之后。
- 如果字符串中的两个字符之间一个是词字符,另一个不是,则位于这两个字符之间。
简而言之,词边界 \b 允许您使用以下形式的 正则表达式 匹配整个单词
\bword\bCode language: JavaScript (javascript)例如,在字符串 Hello, JS! 中,以下位置被视为词边界

以下示例返回 'JS',因为 'Hello, JS!' 与正则表达式 /\bJS\b/ 匹配
console.log('Hello, JS!'.match(/\bJS\b/));Code language: JavaScript (javascript)输出
['JS', index: 7, input: 'Hello, JS!', groups: undefined]Code language: JavaScript (javascript)但是,'Hello, JScript' 与 /\bJS\b/ 不匹配
console.log('Hello, JSscript!'.match(/\bJS\b/));Code language: JavaScript (javascript)输出
nullCode language: JavaScript (javascript)请注意,如果没有 \b,/JS/ 将同时匹配 'Hello, JS' 和 'Hello, JScript'
console.log('Hello, JSscript!'.match(/JS/));
console.log('Hello, JS!'.match(/JS/)); Code language: JavaScript (javascript)输出
['JS', index: 7, input: 'Hello, JSscript!', groups: undefined]
['JS', index: 7, input: 'Hello, JS!', groups: undefined]Code language: JSON / JSON with Comments (json)可以使用词边界与数字一起使用。
例如,正则表达式 \b\d\d\d\d\b 匹配由不同于 \w 的字符包围的 4 位数字。
console.log('ES 2015'.match(/\b\d\d\d\d\b/));Code language: JavaScript (javascript)输出
['2015', index: 3, input: 'ES 2015', groups: undefined]Code language: JavaScript (javascript)以下示例使用词边界查找格式为 hh:mm 的时间,例如 09:15
let str = 'I start coding JS at 05:30 AM';
let re = /\b\d\d:\d\d\b/;
let result = str.match(re);
console.log(result);Code language: JavaScript (javascript)输出
['05:30', index: 21, input: 'I start coding JS at 05:30 AM', groups: undefined]Code language: JavaScript (javascript)重要的是要注意,\b 不适用于非拉丁字母。
到目前为止,您已经看到过模式 \d\d\d\d 和 \d\d 用于匹配四位数或两位数。
如果您使用将在 量词教程 中介绍的量词,这将更容易、更灵活。您可以使用 \d{4} 代替 \d\d\d\d,这要短得多。
摘要
\b锚点匹配词边界位置。
本教程是否有帮助?