摘要:在本教程中,您将学习如何在正则表达式中使用词边界。
(\b
) 是一个 锚点,类似于插入符号 (^
) 和美元符号 ($
)。它匹配称为“词边界”的位置。词边界匹配是零长度的。
以下三个位置被视为词边界
- 如果第一个字符是词字符,则位于字符串第一个字符之前。
- 如果最后一个字符是词字符,则位于字符串最后一个字符之后。
- 如果字符串中的两个字符之间一个是词字符,另一个不是,则位于这两个字符之间。
简而言之,词边界 \b
允许您使用以下形式的 正则表达式 匹配整个单词
\bword\b
Code 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)
输出
null
Code 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
锚点匹配词边界位置。
本教程是否有帮助?