> For the complete documentation index, see [llms.txt](https://nxtech.gitbook.io/regexp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nxtech.gitbook.io/regexp/grammar/untitled.md).

# 定位符

定位符也叫边界（Boundaries），能够将正则表达式固定到行首或行尾

## 定位符集

| 字符   | 含义                                                                                                                          |
| ---- | --------------------------------------------------------------------------------------------------------------------------- |
| `^`  | <p>匹配输入开始</p><p>若多行（m）标志为 true，该字符也会匹配断行符后的开始</p><p>示例：<code>/^R/</code> 不匹配 "regexp" 中的 "r"，但匹配 "RegExp" 中的 "R"。</p>       |
| `$`  | <p>匹配输入结尾</p><p>若多行（m）标志为 true，该字符也会匹配断行符的前的结尾</p><p>示例：<code>/Exp$/</code> 不匹配 "regexp" 中的 ""exp，但匹配 "RegExp" 中的 "Exp”</p> |
| `\b` | <p>匹配一个单词边界，即单词与空格，标点符号等间的位置</p><p>示例：<code>/\bRegExp/</code> 匹配 "The RegExp" 中的 "RegExp"</p>                               |
| `\B` | <p>匹配一个零宽非单词边界（zero-width non-word boundary</p><p>示例：<code>/\BExp/</code> 匹配 "The RegExp" 中的 "Exp"</p>                      |

## 定位符模式

* 输入开始与结尾边界

下述使用了^与$符，因此仅字符串的首尾与模式一致时，才能匹配成功

```javascript
const regexp = /^一起学习[\d]{1,2}\s(RegExp)$/g
regexp.exec('一起学习01 RegExp'); // 匹配
regexp.exec('我们一起学习01 RegExp吗？'); // 不匹
```

![](/files/-LivMKuLsLKynV4X3BoM)

* 单词模式边界

```javascript
// 匹配一个单词边界
const regexp_b = /\bRegExp/;
regexp_b.exec('The RegExp Tech'); // 匹配
regexp_b.exec('TheRegExpTech'); // 不匹配

// 匹配一个零宽非单词边界
const regexp_B = /\BRegExp/;
regexp_B.exec('TheRegExpTech'); // 匹配
regexp_B.exec('The RegExp Tech'); // 不匹配
```

![](/files/-LivOIQ0xKpxbL5U1AcS)

![](/files/-LivOAL9D3itbRMUu6Ja)
