|
6 | 6 | ## 翻译:
|
7 | 7 |
|
8 | 8 | * [English](README.md)
|
9 |
| -* [Spanish](README-es.md) |
| 9 | +* [Español](README-es.md) |
| 10 | +* [Français](README-fr.md) |
10 | 11 | * [中文版](README-cn.md)
|
11 | 12 | * [日本語](README-ja.md)
|
12 | 13 |
|
13 | 14 | ## 什么是正则表达式?
|
14 |
| - |
| 15 | + |
15 | 16 | > 正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.
|
16 | 17 |
|
17 | 18 |
|
|
69 | 70 | 例如: 一个正则表达式 `the`, 它表示一个规则: 由字母`t`开始,接着是`h`,再接着是`e`.
|
70 | 71 |
|
71 | 72 | <pre>
|
72 |
| -"the" => The fat cat sat on <a href="#learn-regex"><strong>the</strong></a> mat. |
| 73 | +"the" => The fat cat sat on <a href="#learn-regex"><strong>the</strong></a> mat. |
73 | 74 | </pre>
|
74 | 75 |
|
75 | 76 | [在线练习](https://regex101.com/r/dmRygT/1)
|
|
106 | 107 |
|
107 | 108 | ## 2.1 点运算符 `.`
|
108 | 109 |
|
109 |
| -`.`是元字符中最简单的例子. |
| 110 | +`.`是元字符中最简单的例子. |
110 | 111 | `.`匹配任意单个字符, 但不匹配换行符.
|
111 | 112 | 例如, 表达式`.ar`匹配一个任意字符后面跟着是`a`和`r`的字符串.
|
112 | 113 |
|
|
152 | 153 |
|
153 | 154 | ## 2.3 重复次数
|
154 | 155 |
|
155 |
| -后面跟着元字符 `+`, `*` or `?` 的, 用来指定匹配子模式的次数. |
| 156 | +后面跟着元字符 `+`, `*` or `?` 的, 用来指定匹配子模式的次数. |
156 | 157 | 这些元字符在不同的情况下有着不同的意思.
|
157 | 158 |
|
158 | 159 | ### 2.3.1 `*` 号
|
|
218 | 219 | 我们可以省略第二个参数.
|
219 | 220 | 例如, `[0-9]{2,}` 匹配至少两位 0~9 的数字.
|
220 | 221 |
|
221 |
| -如果逗号也省略掉则表示重复固定的次数. |
| 222 | +如果逗号也省略掉则表示重复固定的次数. |
222 | 223 | 例如, `[0-9]{3}` 匹配3位数字
|
223 | 224 |
|
224 | 225 | <pre>
|
|
353 | 354 | `?=...` 前置约束(存在), 表示第一部分表达式必须跟在 `?=...`定义的表达式之后.
|
354 | 355 |
|
355 | 356 | 返回结果只瞒住第一部分表达式.
|
356 |
| -定义一个前置约束(存在)要使用 `()`. 在括号内部使用一个问号和等号: `(?=...)`. |
| 357 | +定义一个前置约束(存在)要使用 `()`. 在括号内部使用一个问号和等号: `(?=...)`. |
357 | 358 |
|
358 | 359 | 前置约束的内容写在括号中的等号后面.
|
359 | 360 | 例如, 表达式 `[T|t]he(?=\sfat)` 匹配 `The` 和 `the`, 在括号中我们又定义了前置约束(存在) `(?=\sfat)` ,即 `The` 和 `the` 后面紧跟着 `(空格)fat`.
|
|
367 | 368 | ### 4.2 `?!...` 前置约束-排除
|
368 | 369 |
|
369 | 370 | 前置约束-排除 `?!` 用于筛选所有匹配结果, 筛选条件为 其后不跟随着定义的格式
|
370 |
| -`前置约束-排除` 定义和 `前置约束(存在)` 一样, 区别就是 `=` 替换成 `!` 也就是 `(?!...)`. |
| 371 | +`前置约束-排除` 定义和 `前置约束(存在)` 一样, 区别就是 `=` 替换成 `!` 也就是 `(?!...)`. |
371 | 372 |
|
372 | 373 | 表达式 `[T|t]he(?!\sfat)` 匹配 `The` 和 `the`, 且其后不跟着 `(空格)fat`.
|
373 | 374 |
|
|
429 | 430 |
|
430 | 431 | ### 5.2 全局搜索 (Global search)
|
431 | 432 |
|
432 |
| -修饰符 `g` 常用语执行一个全局搜索匹配, 即(不仅仅返回第一个匹配的, 而是返回全部). |
| 433 | +修饰符 `g` 常用语执行一个全局搜索匹配, 即(不仅仅返回第一个匹配的, 而是返回全部). |
433 | 434 | 例如, 表达式 `/.(at)/g` 表示搜索 任意字符(除了换行) + `at`, 并返回全部结果.
|
434 | 435 |
|
435 | 436 | <pre>
|
|
446 | 447 |
|
447 | 448 | ### 5.3 多行修饰符 (Multiline)
|
448 | 449 |
|
449 |
| -多行修饰符 `m` 常用语执行一个多行匹配. |
| 450 | +多行修饰符 `m` 常用语执行一个多行匹配. |
450 | 451 |
|
451 | 452 | 像之前介绍的 `(^,$)` 用于检查格式是否是在待检测字符串的开头或结尾. 但我们如果想要它在每行的开头和结尾生效, 我们需要用到多行修饰符 `m`.
|
452 | 453 |
|
|
0 commit comments