1
00:00:03,395 --> 00:00:08,245
[标志嗖嗖声]

2
00:00:10,200 --> 00:00:12,252
您好，欢迎来到 INE。

3
00:00:12,252 --> 00:00:13,710
今天，在这个
视频中，我们将看看

4
00:00:13,710 --> 00:00:16,890
在使用正则表达式匹配原始
数据时。

5
00:00:16,890 --> 00:00:20,010
现在，正则表达式在


6
00:00:20,010 --> 00:00:25,710
您想匹配来自文件的任何类型的
原始数据，

7
00:00:25,710 --> 00:00:27,990
或者，假设您
想要匹配手机

8
00:00:27,990 --> 00:00:31,440
数字，或者某个路由器的 IP
地址，

9
00:00:31,440 --> 00:00:34,650
您可以使用正则表达式来实际
匹配这些并返回

10
00:00:34,650 --> 00:00:35,920
回到你身边。

11
00:00:35,920 --> 00:00:39,160
所以，今天，我们将学习
正则表达式以及如何使用它。

12
00:00:39,160 --> 00:00:44,370
所以为了做正则表达式，
我有我的原子。

13
00:00:44,370 --> 00:00:47,490
而且 atom 有一个
内置功能，其中

14
00:00:47,490 --> 00:00:50,560
我们可以用它来测试正则表达式。

15
00:00:50,560 --> 00:00:53,140
这就是我今天
要做的事情。

16
00:00:53,140 --> 00:00:58,080
所以这里，我有一个文件，但是
你可以在这里看到r1_config，

17
00:00:58,080 --> 00:00:59,940
其中有一些原始数据。

18
00:00:59,940 --> 00:01:01,410
它有一些路线图。

19
00:01:01,410 --> 00:01:07,800
它有一些电话号码，
一些词，一些网址，

20
00:01:07,800 --> 00:01:13,060
一些电子邮件地址、一些
姓名、接口 IP 地址。

21
00:01:13,060 --> 00:01:14,520
所以我掌握了所有
这些信息

22
00:01:14,520 --> 00:01:17,560
在这个文本文件中。

23
00:01:17,560 --> 00:01:20,940
假设我们正在
提取一些信息

24
00:01:20,940 --> 00:01:24,750
从路由器，也许我们正在
做一个表演版本，或者也许

25
00:01:24,750 --> 00:01:27,780
一个表演技术，
我们得到了输出，

26
00:01:27,780 --> 00:01:29,670
现在我们这里有
这个输出。

27
00:01:29,670 --> 00:01:32,470
我们想从原始数据中匹配
一些东西。

28
00:01:32,470 --> 00:01:34,380
所以我们可以使用正则表达式。

29
00:01:34,380 --> 00:01:38,320
现在，atom 内置了一些东西，内置了一个特性，

30
00:01:38,320 --> 00:01:41,100
可用于
实际测试您的正则表达式。

31
00:01:41,100 --> 00:01:42,970
让我告诉你。

32
00:01:42,970 --> 00:01:46,350
所以，一旦你打开 atom
并且你有这个文件在这里

33
00:01:46,350 --> 00:01:49,060
或者您在该文件中有任何类型的
原始数据，

34
00:01:49,060 --> 00:01:52,020
您可以使用内置功能
实际创建您的正则表达式

35
00:01:52,020 --> 00:01:55,980
并测试您的正则表达式
以匹配字符

36
00:01:55,980 --> 00:01:57,550
看看它是否真的有效。

37
00:01:57,550 --> 00:02:04,020
所以你应该做的是去
find并打开Find in Buffer。

38
00:02:04,020 --> 00:02:05,670
所以在 Mac 中——

39
00:02:05,670 --> 00:02:06,420
我有一台 Mac。

40
00:02:06,420 --> 00:02:11,070
所以，在 Mac 中，它是 Command-F。
所以如果你使用 Command-F，

41
00:02:11,070 --> 00:02:13,890
这个小酒吧的东西
在底部打开。

42
00:02:13,890 --> 00:02:16,020
这就是您可以
实际输入您的正则表达式的地方

43
00:02:16,020 --> 00:02:17,385
匹配某些东西。

44
00:02:17,385 --> 00:02:18,790
让我，事实上，告诉你。

45
00:02:18,790 --> 00:02:23,500
让我们开始看看
正则表达式的实际工作原理。

46
00:02:23,500 --> 00:02:26,100
所以我要做的是
我有Control-F。

47
00:02:26,100 --> 00:02:28,330
所以一旦你打开文件——

48
00:02:28,330 --> 00:02:30,450
一旦你去 Find
并打开缓冲区，

49
00:02:30,450 --> 00:02:32,670
你在这里看到这两个
小盒子。

50
00:02:32,670 --> 00:02:37,320
这是我们将使用
我们的正则表达式特殊字符的地方

51
00:02:37,320 --> 00:02:39,880
实际匹配原始数据。

52
00:02:39,880 --> 00:02:42,510
现在，在你开始之前，
你应该做的是，

53
00:02:42,510 --> 00:02:44,220
你应该点击这个选项。

54
00:02:44,220 --> 00:02:47,440
这两个选项
默认情况下基本上是禁用的。

55
00:02:47,440 --> 00:02:52,140
所以如果你真的去
给出一些特殊字符，

56
00:02:52,140 --> 00:02:55,230
您的原子不会真正知道
您正在使用正则表达式。

57
00:02:55,230 --> 00:02:57,420
所以如果你想
使用正则表达式，那么你

58
00:02:57,420 --> 00:03:00,010
必须在此处启用
此功能，

59
00:03:00,010 --> 00:03:01,770
这被称为使用正则表达式。

60
00:03:01,770 --> 00:03:06,992
并且还启用匹配大小写，
这意味着，默认情况下，

61
00:03:06,992 --> 00:03:10,000
它保持小写
和大写相同。

62
00:03:10,000 --> 00:03:11,418
所以你应该点击
匹配案例，

63
00:03:11,418 --> 00:03:13,710
这意味着如果它是小写的，
它将匹配小写。

64
00:03:13,710 --> 00:03:15,900
如果是大写，
将匹配大写。

65
00:03:15,900 --> 00:03:19,170
所以它会区分
小写和大写。

66
00:03:19,170 --> 00:03:24,420
所以这两个选项必须
开启后开启——

67
00:03:24,420 --> 00:03:26,460
之后
Control-F 或 Command-F

68
00:03:26,460 --> 00:03:30,810
启用缓冲区，现在
我们可以实际测试正则表达式。

69
00:03:30,810 --> 00:03:34,920
所以我这里有所有这些
数据，让我们说

70
00:03:34,920 --> 00:03:36,300
我想匹配一些东西。

71
00:03:36,300 --> 00:03:39,840
假设我想
匹配一个词，比如说 Cisco。

72
00:03:39,840 --> 00:03:43,710
所以我所能做的就是返回这里
并输入 Cisco 并按 Enter。

73
00:03:43,710 --> 00:03:47,740
您会看到它向我显示
有三个匹配项。

74
00:03:47,740 --> 00:03:49,950
所以它匹配cisco，
小写cisco。

75
00:03:49,950 --> 00:03:53,340
它匹配这个单词 Cisco
也匹配最后一个单词

76
00:03:53,340 --> 00:03:54,593
思科在这里。

77
00:03:54,593 --> 00:03:56,010
所以如果你想
匹配一些东西，

78
00:03:56,010 --> 00:03:58,380
你可以直接匹配
只需给出单词，

79
00:03:58,380 --> 00:04:00,175
它会完全匹配。

80
00:04:00,175 --> 00:04:02,190
现在注意一件事
它没有

81
00:04:02,190 --> 00:04:03,630
匹配大写的 Cisco。

82
00:04:03,630 --> 00:04:05,280
它与这个不匹配。

83
00:04:05,280 --> 00:04:06,330
它不匹配。

84
00:04:06,330 --> 00:04:09,630
如果你想匹配那个，
你可以给大写的 Cisco--

85
00:04:09,630 --> 00:04:11,970
就像，假设
如果我做思科那么

86
00:04:11,970 --> 00:04:14,770
它匹配第一个，它
不匹配小写。

87
00:04:14,770 --> 00:04:17,700
所以它是区分大小写的，因为
我们已经做了这个选项

88
00:04:17,700 --> 00:04:20,310
上面说匹配的情况。

89
00:04:20,310 --> 00:04:21,750
默认情况下，它不会。

90
00:04:21,750 --> 00:04:25,500
并确保您打开了
正则表达式选项。

91
00:04:25,500 --> 00:04:27,570
否则 atom
不会理解

92
00:04:27,570 --> 00:04:31,640
它正在使用正则表达式。

93
00:04:31,640 --> 00:04:33,898
所以让我们说如果我
想要使用一些东西

94
00:04:33,898 --> 00:04:34,940
像一个特殊的字符。

95
00:04:34,940 --> 00:04:36,485
假设我只做一个点。

96
00:04:36,485 --> 00:04:39,030
点匹配一切。

97
00:04:39,030 --> 00:04:41,300
因此，无论您拥有什么数据，
它都会匹配所有内容。

98
00:04:41,300 --> 00:04:45,230
它可以匹配一个单词
，比如可能的字符。

99
00:04:45,230 --> 00:04:46,940
它可以匹配一个数字。

100
00:04:46,940 --> 00:04:50,780
它可以匹配下划线、
换行符、空格。

101
00:04:50,780 --> 00:04:53,420
它基本上匹配所有内容。

102
00:04:53,420 --> 00:04:56,360
事实上，它确实
不匹配新行。

103
00:04:56,360 --> 00:04:58,040
不匹配——

104
00:04:58,040 --> 00:05:00,430
它匹配空格，但不匹配新行。

105
00:05:00,430 --> 00:05:02,790
事实上，如果您看到
这里的新行——

106
00:05:02,790 --> 00:05:05,810
我在字符之间添加了一些新行
。

107
00:05:05,810 --> 00:05:07,340
我真的没有——

108
00:05:07,340 --> 00:05:08,390
它不匹配。

109
00:05:08,390 --> 00:05:13,070
它只匹配 A 到
Z。它匹配 0 到 9。

110
00:05:13,070 --> 00:05:15,240
它匹配下划线。

111
00:05:15,240 --> 00:05:17,540
它与我的元字符匹配。

112
00:05:17,540 --> 00:05:19,294
它匹配空格。

113
00:05:19,294 --> 00:05:22,100
所以点是
基本上意味着的东西

114
00:05:22,100 --> 00:05:23,180
匹配一切。

115
00:05:23,180 --> 00:05:27,140
现在，很明显，我们想要
使用一些特殊字符

116
00:05:27,140 --> 00:05:29,040
匹配某事。

117
00:05:29,040 --> 00:05:33,890
现在你在这里拥有的所有这些元字符
是——

118
00:05:33,890 --> 00:05:37,130
基本上，它必须逃脱。

119
00:05:37,130 --> 00:05:38,660
例如，让我们
说如果我想要

120
00:05:38,660 --> 00:05:42,350
匹配文字点，
因为如果我只给点，

121
00:05:42,350 --> 00:05:43,760
它匹配一切。

122
00:05:43,760 --> 00:05:47,225
但是如果我想
只匹配一个小点怎么办？

123
00:05:47,225 --> 00:05:52,430
例如，在一个 IP
地址中，我们有 192.168.,

124
00:05:52,430 --> 00:05:54,050
所以我想匹配点。

125
00:05:54,050 --> 00:05:56,135
所以如果你想
匹配文字点，

126
00:05:56,135 --> 00:05:59,150
你必须逃避那个
因为，如果你只是给点，

127
00:05:59,150 --> 00:06:00,810
它匹配一切。

128
00:06:00,810 --> 00:06:02,660
但是如果你想
匹配文字点，

129
00:06:02,660 --> 00:06:04,520
你必须逃避
那个，这意味着，

130
00:06:04,520 --> 00:06:07,760
如果我给出反斜杠
点并按 Enter，

131
00:06:07,760 --> 00:06:12,720
你会看到它匹配
我文件中的所有点。

132
00:06:12,720 --> 00:06:15,830
所以，在我的原始数据中，它
匹配所有点

133
00:06:15,830 --> 00:06:17,927
我有。

134
00:06:17,927 --> 00:06:19,510
所以如果你看
这里的右边，

135
00:06:19,510 --> 00:06:22,630
我已经像片段一样打开了
文件，它给了你

136
00:06:22,630 --> 00:06:28,760
关于如何使用这些
元字符来匹配事物的想法。

137
00:06:28,760 --> 00:06:30,190
所以让我们看看所有这些。

138
00:06:30,190 --> 00:06:32,150
我们将一一查看。

139
00:06:32,150 --> 00:06:33,145
所以我们有这个点。

140
00:06:33,145 --> 00:06:38,170
如您所知，除了换行符之外，只有一个点匹配
所有内容。

141
00:06:38,170 --> 00:06:41,170
但是让我们说如果
我做反斜杠d，

142
00:06:41,170 --> 00:06:44,140
它匹配数字 0 到 9。

143
00:06:44,140 --> 00:06:48,890
所以如果我做一个反斜杠
d，它匹配数字。

144
00:06:48,890 --> 00:06:50,140
所以我们回去吧。

145
00:06:50,140 --> 00:06:53,020
让我们突出显示这个文件
并做一个反斜杠 d,

146
00:06:53,020 --> 00:06:57,100
你可以看到它只匹配我有数字的
数字。

147
00:06:57,100 --> 00:06:59,080
所以我有 1.-- 它与点不匹配。

148
00:06:59,080 --> 00:07:03,010
它匹配
1111，然后是 255 255。

149
00:07:03,010 --> 00:07:07,990
所以无论如何我有数字，
它会匹配那个。

150
00:07:07,990 --> 00:07:10,960
这就是反斜杠
d，小写d。

151
00:07:10,960 --> 00:07:14,770
然后，如果我做一些事情
像反斜杠上 D，

152
00:07:14,770 --> 00:07:16,760
不匹配数字。

153
00:07:16,760 --> 00:07:18,980
所以任何不是数字的东西。

154
00:07:18,980 --> 00:07:21,640
所以假设我这样做，
你会看到它匹配

155
00:07:21,640 --> 00:07:23,680
除了数字之外的一切。

156
00:07:23,680 --> 00:07:26,470
所以 1111 没有突出显示。

157
00:07:26,470 --> 00:07:30,340
它匹配 A 到
Z。它匹配冒号。

158
00:07:30,340 --> 00:07:33,910
它与我的空间相匹配。

159
00:07:33,910 --> 00:07:36,400
它也符合我的新台词。

160
00:07:36,400 --> 00:07:40,510
它匹配星号、
下划线、连字符。

161
00:07:40,510 --> 00:07:43,640
它基本上匹配
除数字之外的所有内容。

162
00:07:43,640 --> 00:07:46,600
所以反斜杠大写
D是匹配的

163
00:07:46,600 --> 00:07:48,570
所有不是数字的东西。

164
00:07:48,570 --> 00:07:51,010
所以点匹配一切。

165
00:07:51,010 --> 00:07:54,370
您的反斜杠 D
只匹配数字。

166
00:07:54,370 --> 00:07:59,510
反斜杠大写 D 匹配
所有不是数字的内容。

167
00:07:59,510 --> 00:08:02,480
然后我们有反斜杠 w。

168
00:08:02,480 --> 00:08:05,590
反斜杠 w 将
匹配单词字符。

169
00:08:05,590 --> 00:08:10,480
从 A 到
Z、大写 A 到 Z 或 0 的任何内容

170
00:08:10,480 --> 00:08:12,170
到 9，甚至下划线。

171
00:08:12,170 --> 00:08:13,450
让我们看看。

172
00:08:13,450 --> 00:08:19,090
如果我使用反斜杠 w，您会看到
它匹配数字，

173
00:08:19,090 --> 00:08:22,660
它匹配
字符 A 到 Z

174
00:08:22,660 --> 00:08:25,570
小写和大写，
你可以在这里看到。

175
00:08:25,570 --> 00:08:28,180
它与新行不匹配。

176
00:08:28,180 --> 00:08:30,530
它不匹配空格。

177
00:08:30,530 --> 00:08:33,340
所以它只匹配
a到z小写，

178
00:08:33,340 --> 00:08:38,514
A 到 Z 大写，
0 到 9，以及下划线。

179
00:08:38,514 --> 00:08:41,510
它不匹配连字符。

180
00:08:41,510 --> 00:08:44,750
如果您在这里看到连字符
不匹配，但下划线

181
00:08:44,750 --> 00:08:45,250
火柴。

182
00:08:45,250 --> 00:08:48,430
我相信我在电子邮件中的某处有下划线
。

183
00:08:48,430 --> 00:08:49,460
所以匹配。

184
00:08:49,460 --> 00:08:51,020
所以它匹配下划线。

185
00:08:51,020 --> 00:08:54,850
如果我做反斜杠
大写W，你

186
00:08:54,850 --> 00:08:56,440
会看到它
匹配某些东西

187
00:08:56,440 --> 00:08:58,850
这不是一个单词字符。

188
00:08:58,850 --> 00:09:02,440
所以如果我现在看到这个，
它匹配空格，

189
00:09:02,440 --> 00:09:07,780
它匹配行，但是
任何不是数字的东西，

190
00:09:07,780 --> 00:09:10,360
任何不是
字字符的东西。

191
00:09:10,360 --> 00:09:12,760
但它符合我的点。

192
00:09:12,760 --> 00:09:14,270
它匹配星号。

193
00:09:14,270 --> 00:09:16,810
它与连字符匹配。

194
00:09:16,810 --> 00:09:20,290
让我们看看。

195
00:09:20,290 --> 00:09:22,570
它与
下划线不匹配，因为

196
00:09:22,570 --> 00:09:24,310
是小写的 w。

197
00:09:24,310 --> 00:09:30,100
在大写 W 中，它匹配空白
空格，匹配你的新行，

198
00:09:30,100 --> 00:09:36,790
匹配你的点，
匹配你的连字符。

199
00:09:36,790 --> 00:09:38,590
它符合这一点。

200
00:09:38,590 --> 00:09:42,070
然后我们有
反斜杠小写s。

201
00:09:42,070 --> 00:09:45,310
这匹配空格
如制表符或新行。

202
00:09:45,310 --> 00:09:49,240
所以如果我做反斜杠，
匹配新行

203
00:09:49,240 --> 00:09:51,760
或空格或制表符。

204
00:09:51,760 --> 00:09:53,140
它符合所有这些。

205
00:09:53,140 --> 00:09:57,590
如果我使用反斜杠大写 S，
它不匹配空格。

206
00:09:57,590 --> 00:09:59,860
所以任何
不是空白的东西。

207
00:09:59,860 --> 00:10:04,030
所以你看到它匹配数字，
匹配点，下伤，

208
00:10:04,030 --> 00:10:04,930
连字符。

209
00:10:04,930 --> 00:10:07,540
基本上，所有
不是空白的东西，

210
00:10:07,540 --> 00:10:09,430
这不是一条新线。

211
00:10:09,430 --> 00:10:13,440
那是反斜杠大写S。

212
00:10:13,440 --> 00:10:19,540
现在，如果你看
这里的右侧，

213
00:10:19,540 --> 00:10:21,310
我有一个东西
叫做锚。

214
00:10:21,310 --> 00:10:22,930
现在，在我向你们展示
主播之前，我只是

215
00:10:22,930 --> 00:10:25,240
想向您展示
一个例子——

216
00:10:25,240 --> 00:10:28,220
也许让我们说如果我
匹配一个网站。

217
00:10:28,220 --> 00:10:34,060
假设我正在匹配
可能是一个网站。

218
00:10:34,060 --> 00:10:36,230
我相信我在这里有一个网站。

219
00:10:36,230 --> 00:10:38,320
假设我是
匹配ine.com。

220
00:10:38,320 --> 00:10:41,050
如果我匹配那个，
我会怎么写呢？

221
00:10:41,050 --> 00:10:42,380
我该怎么写？

222
00:10:42,380 --> 00:10:50,380
所以我会说类似
http://，然后我会说ine。

223
00:10:50,380 --> 00:10:53,065
我想匹配
字面点。

224
00:10:53,065 --> 00:10:56,860
如果你还记得，如果我只是说
点，它匹配一切。

225
00:10:56,860 --> 00:10:57,800
我不想要那个。

226
00:10:57,800 --> 00:10:59,350
我想匹配
字面点。

227
00:10:59,350 --> 00:11:04,270
所以我会避开那个
反斜杠点，然后说 com.

228
00:11:04,270 --> 00:11:07,960
这与 URL ine.com 匹配。

229
00:11:07,960 --> 00:11:09,677
现在，显然，
这样做，

230
00:11:09,677 --> 00:11:11,260
这真的没有道理
因为我

231
00:11:11,260 --> 00:11:13,900
会有数百
和数百个 URL

232
00:11:13,900 --> 00:11:17,900
我可能需要观看
或者我可能需要匹配。

233
00:11:17,900 --> 00:11:23,420
所以这样做，
它并不是真正可扩展的。

234
00:11:23,420 --> 00:11:26,720
所以很明显，你必须
编写正确的正则表达式来匹配

235
00:11:26,720 --> 00:11:28,740
多个 URL 在一起。

236
00:11:28,740 --> 00:11:31,740
所以我们会在一段时间内看到这一点。

237
00:11:31,740 --> 00:11:32,630
所以让我们继续吧。

238
00:11:32,630 --> 00:11:34,610
让我们看看锚点。

239
00:11:34,610 --> 00:11:36,530
这些锚是关于什么的？

240
00:11:36,530 --> 00:11:37,910
所以我有一些锚。

241
00:11:37,910 --> 00:11:40,295
很明显，这些
是特殊字符

242
00:11:40,295 --> 00:11:42,545
你可以用它来匹配
我们讨论过的东西。

243
00:11:42,545 --> 00:11:43,620
我们有这个点。

244
00:11:43,620 --> 00:11:46,730
我们有反斜杠 d，
反斜杠大写 D，

245
00:11:46,730 --> 00:11:49,880
反斜杠 w，
用于单词字符。

246
00:11:49,880 --> 00:11:53,000
我们有反斜杠大写
W。我们有反斜杠 s。

247
00:11:53,000 --> 00:11:55,370
我们有反斜杠
大写的 S。现在，

248
00:11:55,370 --> 00:11:56,600
我们将看看锚点。

249
00:11:56,600 --> 00:12:02,120
现在，锚点基本上
用于匹配单词边界。

250
00:12:02,120 --> 00:12:05,420
例如，假设我有——

251
00:12:05,420 --> 00:12:06,890
我想匹配思科。

252
00:12:06,890 --> 00:12:11,930
所以我可以做类似
反斜杠 b 并输入 Cisco。

253
00:12:11,930 --> 00:12:14,135
如果我输入反斜杠
b Cisco，你会看到

254
00:12:14,135 --> 00:12:16,887
它匹配任何具有单词边界的
。

255
00:12:16,887 --> 00:12:18,470
你说的
边界是什么意思？

256
00:12:18,470 --> 00:12:21,720
假设我在两个词之间有一个
空格。

257
00:12:21,720 --> 00:12:24,950
所以现在如果你看到
思科，思科这个词

258
00:12:24,950 --> 00:12:27,020
这里之前有一个边界。

259
00:12:27,020 --> 00:12:28,730
在
之前有一个空格，然后有

260
00:12:28,730 --> 00:12:31,890
之后的边界
之后什么都不做。

261
00:12:31,890 --> 00:12:33,470
所以它匹配。

262
00:12:33,470 --> 00:12:36,860
它匹配这个
思科也因为它

263
00:12:36,860 --> 00:12:40,070
在此之前有一个边界，
并且匹配这个思科也

264
00:12:40,070 --> 00:12:41,930
在这之后还有一个边界
，

265
00:12:41,930 --> 00:12:44,070
这意味着之后没有
字。

266
00:12:44,070 --> 00:12:48,900
所以使用反斜杠 b,
它匹配一个单词边界。

267
00:12:48,900 --> 00:12:54,590
然后我们有反斜杠
大写B。让我们看看。

268
00:12:54,590 --> 00:12:58,730
让我们做一个反斜杠
大写B Cisco。

269
00:12:58,730 --> 00:13:01,250
如果我做一个反斜杠
大写B Cisco，

270
00:13:01,250 --> 00:13:03,800
它只匹配
这里的最后一个思科。

271
00:13:03,800 --> 00:13:05,660
它与第一个不匹配。

272
00:13:05,660 --> 00:13:06,930
这意味着什么？

273
00:13:06,930 --> 00:13:09,800
这意味着这个思科，
这里的最后一个思科，

274
00:13:09,800 --> 00:13:11,060
没有边界。

275
00:13:11,060 --> 00:13:14,645
意思是附有
一个字。

276
00:13:14,645 --> 00:13:16,520
因此，假设您在
找到一个词，

277
00:13:16,520 --> 00:13:18,830
一言以蔽之，让我们
说你有一个大词

278
00:13:18,830 --> 00:13:21,020
你想在其中找到
一些东西，

279
00:13:21,020 --> 00:13:26,240
那么你可以使用反斜杠
B来匹配一个单词，它

280
00:13:26,240 --> 00:13:30,980
没有边界，这
意味着它没有空格。

281
00:13:30,980 --> 00:13:33,740
然后我们有插入符号。

282
00:13:33,740 --> 00:13:35,420
插入符号是一种东西
它被称为——

283
00:13:35,420 --> 00:13:37,920
用于匹配某事
与行首。

284
00:13:37,920 --> 00:13:40,040
所以假设我
想要匹配——

285
00:13:40,040 --> 00:13:42,500
如果我做一些
像插入符号 Cisco 这样的事情，

286
00:13:42,500 --> 00:13:43,760
它不会匹配任何东西。

287
00:13:43,760 --> 00:13:48,710
它不匹配任何东西
因为我的数据中没有行

288
00:13:48,710 --> 00:13:50,660
以 Cisco 一词开头。

289
00:13:50,660 --> 00:13:53,210
因此，该行必须以 Cisco 一词开头
。

290
00:13:53,210 --> 00:13:56,840
比方说，如果我做
IP之类的事情，任何事情

291
00:13:56,840 --> 00:14:01,083
以IP地址开头。

292
00:14:01,083 --> 00:14:02,250
如果我做这样的事情。

293
00:14:02,250 --> 00:14:05,540
假设 IP 并按 Enter。

294
00:14:05,540 --> 00:14:07,160
它应该在这里。

295
00:14:07,160 --> 00:14:10,400
IP，任何
以IP开头的东西。

296
00:14:10,400 --> 00:14:12,350
我相信我有IP。

297
00:14:12,350 --> 00:14:13,920
哦，这里有空。

298
00:14:13,920 --> 00:14:19,550
所以我应该做反斜杠
任何以空格开头的东西

299
00:14:19,550 --> 00:14:20,810
然后是IP。

300
00:14:20,810 --> 00:14:23,190
你看，它符合那个。

301
00:14:23,190 --> 00:14:27,230
因此，使用插入符号，您可以
定义它以什么开头。

302
00:14:27,230 --> 00:14:29,670
你也可以拥有
类似的东西——

303
00:14:29,670 --> 00:14:32,060
假设您想
找到以下内容，

304
00:14:32,060 --> 00:14:33,920
比方说，以 com 结尾。

305
00:14:33,920 --> 00:14:37,100
所以我可以做
com$之类的东西，

306
00:14:37,100 --> 00:14:41,130
这意味着任何以 com 结尾的
都匹配。

307
00:14:41,130 --> 00:14:44,370
所以任何以 com 结尾的东西，
基本上都会匹配。

308
00:14:44,370 --> 00:14:46,280
所以那是你的锚。

309
00:14:46,280 --> 00:14:47,750
所以主播，我们
有四个。

310
00:14:47,750 --> 00:14:50,150
我们有反斜杠
b，它匹配什么？

311
00:14:50,150 --> 00:14:50,750
边界。

312
00:14:50,750 --> 00:14:52,700
我们有反斜杠
大写B，它

313
00:14:52,700 --> 00:14:54,650
不匹配单词边界。

314
00:14:54,650 --> 00:14:58,190
我们有插入符号，它
表示字符串的开头

315
00:14:58,190 --> 00:15:02,010
或者我们有 $，它是字符串的结尾。

316
00:15:02,010 --> 00:15:06,240
那我们这里还有点别的
基本匹配

317
00:15:06,240 --> 00:15:08,520
括号内的字符。

318
00:15:08,520 --> 00:15:10,890
我们稍后再讨论。

319
00:15:10,890 --> 00:15:13,030
让我先给你看一些
的东西。

320
00:15:13,030 --> 00:15:18,987
因此，假设我们想要
匹配一些数字。

321
00:15:18,987 --> 00:15:20,320
比方说——让我回到这里。

322
00:15:20,320 --> 00:15:22,620
我有一些号码
这里有一些电话号码

323
00:15:22,620 --> 00:15:24,360
我想匹配那个。

324
00:15:24,360 --> 00:15:25,480
我该如何匹配？

325
00:15:25,480 --> 00:15:29,220
现在，您知道
反斜杠 d、小写 d、

326
00:15:29,220 --> 00:15:31,030
用于匹配数字。

327
00:15:31,030 --> 00:15:33,030
所以如果我想
匹配这些数字，

328
00:15:33,030 --> 00:15:34,830
我可以给出类似反斜杠的东西


329
00:15:34,830 --> 00:15:38,220
d，匹配
一个数字。

330
00:15:38,220 --> 00:15:42,450
然后我再给
反斜杠

331
00:15:42,450 --> 00:15:44,910
d，匹配
第二个数字。

332
00:15:44,910 --> 00:15:48,000
然后是反斜杠 d，它与第三个数字匹配。

333
00:15:48,000 --> 00:15:50,745
然后我可以说
类似点的东西。

334
00:15:50,745 --> 00:15:53,310
现在我没有逃避
这个，基本上

335
00:15:53,310 --> 00:15:57,000
意味着它将
匹配任何

336
00:15:57,000 --> 00:16:01,290
以数字开头，然后是
数字，然后是数字，然后

337
00:16:01,290 --> 00:16:06,700
其他任何东西，任何字符
或任何数字，一个数字。

338
00:16:06,700 --> 00:16:09,750
因此，如果您看到，它
匹配所有内容，

339
00:16:09,750 --> 00:16:12,810
所有这些数字，但
它也匹配 1 到 3

340
00:16:12,810 --> 00:16:14,490
因为那是
三位数。

341
00:16:14,490 --> 00:16:18,630
它也匹配 255255255。

342
00:16:18,630 --> 00:16:21,420
它与
1.1.1.1 不匹配，因为那只是

343
00:16:21,420 --> 00:16:22,180
一个数字。

344
00:16:22,180 --> 00:16:24,930
所以我给反斜杠 d,
表示一位数。

345
00:16:24,930 --> 00:16:27,330
然后再次反斜杠 d,
表示一位数。

346
00:16:27,330 --> 00:16:29,610
然后再次反斜杠 d,
表示一位数，即

347
00:16:29,610 --> 00:16:33,270
表示应该有三个
数字，后跟三个数字

348
00:16:33,270 --> 00:16:35,980
通过其他任何事情。

349
00:16:35,980 --> 00:16:39,130
所以这就是为什么它匹配所有。

350
00:16:39,130 --> 00:16:42,150
但是，假设我只想
匹配电话号码。

351
00:16:42,150 --> 00:16:45,150
现在，我知道电话号码
有三位数字，

352
00:16:45,150 --> 00:16:47,880
是区号，那么我们
就有用户号码，

353
00:16:47,880 --> 00:16:49,260
也就是三位数。

354
00:16:49,260 --> 00:16:51,810
然后我们有
四位数字。

355
00:16:51,810 --> 00:16:55,410
所以我可以给出类似的东西——

356
00:16:55,410 --> 00:16:58,350
我可以做类似
反斜杠d，反斜杠d，

357
00:16:58,350 --> 00:17:00,180
反斜杠 d 点。

358
00:17:00,180 --> 00:17:03,180
然后再次反斜杠 d,
反斜杠 d, 反斜杠 d,

359
00:17:03,180 --> 00:17:07,200
然后点反斜杠 d，反斜杠
d，反斜杠 d，反斜杠 d。

360
00:17:07,200 --> 00:17:11,160
所以这是匹配三个
数字，然后是四个数字，

361
00:17:11,160 --> 00:17:13,619
然后又是三位数，
然后是四位数。

362
00:17:13,619 --> 00:17:16,140
所以它匹配所有
我的电话号码。

363
00:17:16,140 --> 00:17:19,202
如果您发现它与 255255255255 不匹配
。

364
00:17:19,202 --> 00:17:20,160
这不匹配。

365
00:17:20,160 --> 00:17:21,780
它只匹配
四个数字

366
00:17:21,780 --> 00:17:26,430
因为它需要三个
数字，然后是任何字符，

367
00:17:26,430 --> 00:17:30,450
然后是三个数字，然后是任何
字符，然后是三个数字，

368
00:17:30,450 --> 00:17:31,800
那么，实际上是四位数。

369
00:17:31,800 --> 00:17:34,890
我的 255 只有三位数。

370
00:17:34,890 --> 00:17:37,150
所以它不会匹配那个。

371
00:17:37,150 --> 00:17:39,850
所以现在它匹配
我所有的电话号码，

372
00:17:39,850 --> 00:17:46,830
但是如果我想匹配
可能只是电话号码怎么办

373
00:17:46,830 --> 00:17:51,810
有一个破折号，有一个
连字符，可能还有一个点。

374
00:17:51,810 --> 00:17:55,050
我不想匹配
带有星号的东西。

375
00:17:55,050 --> 00:17:58,810
那么哪个是带有星号的星号
。

376
00:17:58,810 --> 00:18:00,090
所以我不想匹配那个。

377
00:18:00,090 --> 00:18:02,790
我只想匹配
破折号，即连字符

378
00:18:02,790 --> 00:18:04,960
和数字之间的点。

379
00:18:04,960 --> 00:18:08,500
所以，在那种情况下，我
可以使用这些东西。

380
00:18:08,500 --> 00:18:10,180
我可以在这里使用这个
方括号，

381
00:18:10,180 --> 00:18:13,380
它用于
定义要匹配的内容。

382
00:18:13,380 --> 00:18:16,170
所以它匹配该框内的字符
。

383
00:18:16,170 --> 00:18:20,790
所以我能做的是让我们
回到这里删除这个，

384
00:18:20,790 --> 00:18:23,190
在三个
数字之后，我可以说——

385
00:18:23,190 --> 00:18:25,530
我可以做一个盒子
括号，上面写着

386
00:18:25,530 --> 00:18:30,030
匹配破折号或点。

387
00:18:30,030 --> 00:18:34,950
所以这基本上是要
匹配任何一个字符，

388
00:18:34,950 --> 00:18:39,510
要么是一个点——现在，我再次
想要匹配文字点。

389
00:18:39,510 --> 00:18:43,890
现在我知道我告诉过你
一个点必须被转义。

390
00:18:43,890 --> 00:18:47,760
如果要匹配文字
点，则必须对其进行转义。

391
00:18:47,760 --> 00:18:50,520
但是，
方括号内的点

392
00:18:50,520 --> 00:18:51,940
不需要逃脱。

393
00:18:51,940 --> 00:18:54,630
如果你想
你可以逃避它，但你不需要。

394
00:18:54,630 --> 00:18:57,750
仅当圆点
在方括号外时，

395
00:18:57,750 --> 00:19:00,840
那么如果你只是说点，
它匹配一切，

396
00:19:00,840 --> 00:19:04,110
或者如果您在方括号外使用反斜杠点
，

397
00:19:04,110 --> 00:19:06,240
那么你必须
逃避它，如果你

398
00:19:06,240 --> 00:19:07,620
想匹配小圆点。

399
00:19:07,620 --> 00:19:09,960
但是如果圆点是
在方括号内，

400
00:19:09,960 --> 00:19:11,890
你不需要逃避它。

401
00:19:11,890 --> 00:19:13,710
所以这基本上
意味着它是

402
00:19:13,710 --> 00:19:18,576
将匹配连字符
或文字点。

403
00:19:18,576 --> 00:19:21,660
然后我可以说反斜杠
d，反斜杠d，反斜杠d。

404
00:19:21,660 --> 00:19:24,820
再一次，一个方括号
匹配连字符或点，

405
00:19:24,820 --> 00:19:28,650
然后是反斜杠 d，反斜杠
d，反斜杠 d，反斜杠 d。

406
00:19:28,650 --> 00:19:34,410
所以如果我做类似
这样的事情，它应该匹配——

407
00:19:34,410 --> 00:19:35,960
让我们检查。

408
00:19:35,960 --> 00:19:40,380
所以现在，如果我看这个，它
匹配了我所有的电话号码

409
00:19:40,380 --> 00:19:46,690
除了具有
星号的那个是星号。

410
00:19:46,690 --> 00:19:48,880
这不匹配。

411
00:19:48,880 --> 00:19:52,170
所以你看，用
方括号，

412
00:19:52,170 --> 00:19:56,130
我可以在其中定义多个
字符，其中

413
00:19:56,130 --> 00:20:00,300
就像夸大其词
要么是破折号

414
00:20:00,300 --> 00:20:04,850
或者它可能是一个点。

415
00:20:04,850 --> 00:20:09,480
所以假设我们想
匹配可能只是数字

416
00:20:09,480 --> 00:20:13,380
以 800
或 900 开头，所以也许我们

417
00:20:13,380 --> 00:20:15,040
想要匹配
类似的东西。

418
00:20:15,040 --> 00:20:20,130
在这种情况下，我们所能做的就是
去修改它

419
00:20:20,130 --> 00:20:24,060
我们可以再次说
类似的东西，

420
00:20:24,060 --> 00:20:28,400
一个方括号
会有 8 或 9。

421
00:20:28,400 --> 00:20:33,620
关闭方括号，
然后是文字 00。

422
00:20:33,620 --> 00:20:38,460
这仅匹配
我的 800 或 900 个号码。

423
00:20:38,460 --> 00:20:42,020
所以如果你现在看到，这里我有
在方括号中我有 8

424
00:20:42,020 --> 00:20:45,920
或 9，然后是文字 00。

425
00:20:45,920 --> 00:20:50,450
然后我有一个破折号
或一个点，然后我

426
00:20:50,450 --> 00:20:53,270
有反斜杠 d，
反斜杠 d，反斜杠 d。

427
00:20:53,270 --> 00:20:56,750
然后又是一个破折号
或点，然后

428
00:20:56,750 --> 00:20:59,450
我有反斜杠 d、反斜杠
d、反斜杠 d、反斜杠 d。

429
00:20:59,450 --> 00:21:04,220
因此，它仅匹配
800 或 900 个数字。

430
00:21:04,220 --> 00:21:08,210
现在我知道我说过 dash
与文字 dash 匹配。

431
00:21:08,210 --> 00:21:11,300
但是，它匹配
这里的文字破折号

432
00:21:11,300 --> 00:21:13,760
您可以在
这里看到连字符。

433
00:21:13,760 --> 00:21:18,080
那基本上只匹配
如果它在开头

434
00:21:18,080 --> 00:21:20,750
或在
方括号的末尾。

435
00:21:20,750 --> 00:21:24,240
但是如果你把破折号
放在某物之间——

436
00:21:24,240 --> 00:21:27,260
但是假设在两个
数字之间，它变成了一个范围。

437
00:21:27,260 --> 00:21:31,820
例如，假设我
想要匹配任何数字

438
00:21:31,820 --> 00:21:36,350
从二到七开始。

439
00:21:36,350 --> 00:21:39,560
好的，任何以二到七开头的数字
。

440
00:21:39,560 --> 00:21:41,750
那样的话，我
可以给点东西

441
00:21:41,750 --> 00:21:47,040
像一个盒子支架，2破折号7。

442
00:21:47,040 --> 00:21:48,590
关闭盒子支架。

443
00:21:48,590 --> 00:21:52,310
然后我可以有
反斜杠d，反斜杠d。

444
00:21:52,310 --> 00:21:53,640
就是这样。

445
00:21:53,640 --> 00:21:55,700
因此，如果您现在看到，它
匹配两个数字

446
00:21:55,700 --> 00:22:00,320
以七开头或以六开头或以二开头，

447
00:22:00,320 --> 00:22:03,290
或以三个
或四个或五个开头。

448
00:22:03,290 --> 00:22:05,750
我只有两个以二开头的数字
--

449
00:22:05,750 --> 00:22:07,130
2到7之间。

450
00:22:07,130 --> 00:22:10,190
所以当你有两个数字之间的
破折号

451
00:22:10,190 --> 00:22:15,080
或在两个
字符 A 到 Z 之间，

452
00:22:15,080 --> 00:22:17,790
它会在这两者之间匹配。

453
00:22:17,790 --> 00:22:22,680
所以两个
数字之间的破折号匹配一个范围。

454
00:22:22,680 --> 00:22:25,640
但是如果你把破折号
放在盒子的开头

455
00:22:25,640 --> 00:22:29,360
或在框的末尾，它
匹配文字破折号，它

456
00:22:29,360 --> 00:22:32,850
是文字连字符。

457
00:22:32,850 --> 00:22:35,240
好吧，让我们继续前进。

458
00:22:35,240 --> 00:22:37,130
让我们看看下一个。

459
00:22:37,130 --> 00:22:39,950
我们有一个叫做
的东西作为非，它否定。

460
00:22:39,950 --> 00:22:42,870
所以匹配不在括号中的字符
。

461
00:22:42,870 --> 00:22:45,380
假设我想
匹配

462
00:22:45,380 --> 00:22:50,480
不是从两点到七点。

463
00:22:50,480 --> 00:22:54,720
所以我可以在方括号内说插入符号
。

464
00:22:54,720 --> 00:22:57,450
所以你看，插入符号
是字符串的开头。

465
00:22:57,450 --> 00:23:01,010
但是，当它在
方括号内使用时，它会否定它。

466
00:23:01,010 --> 00:23:05,450
这变成了任何不从二到七开始的东西，

467
00:23:05,450 --> 00:23:07,020
它匹配那个。

468
00:23:07,020 --> 00:23:11,570
因此，如果您现在看到，它会匹配
所有电话号码，

469
00:23:11,570 --> 00:23:15,975
从八九开始。

470
00:23:15,975 --> 00:23:20,510
它与
二到七之间不匹配。

471
00:23:20,510 --> 00:23:23,690
所以它会匹配以一个开头的东西
。

472
00:23:23,690 --> 00:23:26,930
它会匹配一些可能以零开头的
，

473
00:23:26,930 --> 00:23:28,820
但它不会
匹配

474
00:23:28,820 --> 00:23:32,510
从二到七开始。

475
00:23:32,510 --> 00:23:38,320
这就是方括号内的插入符号
的含义。

476
00:23:38,320 --> 00:23:41,960
让我们稍后再看看
组之一。

477
00:23:41,960 --> 00:23:44,720
让我们去量词。

478
00:23:44,720 --> 00:23:51,010
现在量词是
你

479
00:23:51,010 --> 00:23:53,770
可以使用，因为，
如果你注意到这里，

480
00:23:53,770 --> 00:23:56,710
我实际上写了四次
反斜杠 d，

481
00:23:56,710 --> 00:23:59,080
然后再三遍，
再三遍。

482
00:23:59,080 --> 00:24:01,030
它有点变得很长。

483
00:24:01,030 --> 00:24:04,210
所以有一个更好的方法
用量词来写它。

484
00:24:04,210 --> 00:24:06,370
所以我会告诉你。

485
00:24:06,370 --> 00:24:07,870
然而，在我
向你展示之前，我

486
00:24:07,870 --> 00:24:09,340
确实想给你看一些东西。

487
00:24:09,340 --> 00:24:14,470
例如，假设
如果我想匹配一个范围，

488
00:24:14,470 --> 00:24:18,430
我可以做类似
方括号 A 到 Z 之类的操作。

489
00:24:18,430 --> 00:24:22,420
所以匹配任何
以A到Z开头的字符，

490
00:24:22,420 --> 00:24:24,103
所以它匹配所有
字符。

491
00:24:24,103 --> 00:24:26,020
如果您发现它与我的电话号码不匹配，


492
00:24:26,020 --> 00:24:28,000
它不匹配
我的元字符，

493
00:24:28,000 --> 00:24:29,620
但它匹配
我所有的字母

494
00:24:29,620 --> 00:24:32,560
以 A 到 Z 开头。它与 Cisco 不匹配，后者

495
00:24:32,560 --> 00:24:35,290
是大写的，因为
我把 A 给了 Z

496
00:24:35,290 --> 00:24:39,790
匹配任何单个
小写字符。

497
00:24:39,790 --> 00:24:44,470
如果我想要
匹配小写或大写，

498
00:24:44,470 --> 00:24:47,080
我可以给一些东西
像A到Z

499
00:24:47,080 --> 00:24:49,430
框括号内。

500
00:24:49,430 --> 00:24:50,510
那么这是什么意思？

501
00:24:50,510 --> 00:24:54,520
这意味着匹配一个小写的
字符

502
00:24:54,520 --> 00:24:58,570
a 到 z 或大写
A 到 Z。所以如果你现在看到，

503
00:24:58,570 --> 00:25:00,880
它也匹配
大写的 Cisco。

504
00:25:00,880 --> 00:25:02,900
同样，它匹配
单个字符。

505
00:25:02,900 --> 00:25:05,020
所以所有这些
匹配不是一个词。

506
00:25:05,020 --> 00:25:09,100
它分别匹配 C，
i 单独，s 单独，

507
00:25:09,100 --> 00:25:11,330
c分开，o分开。

508
00:25:11,330 --> 00:25:13,270
假设我想
也匹配数字，

509
00:25:13,270 --> 00:25:16,180
我可以再做一次 0 到 9。

510
00:25:16,180 --> 00:25:18,700
这基本上意味着
我要去

511
00:25:18,700 --> 00:25:21,080
也匹配数字。

512
00:25:21,080 --> 00:25:24,040
再次，它匹配
一个字符，它

513
00:25:24,040 --> 00:25:27,040
可以是一个数字，也可以是一个小写字符，

514
00:25:27,040 --> 00:25:31,195
或者它可以是
大写字符。

515
00:25:31,195 --> 00:25:32,570
让我再举一个
例子。

516
00:25:32,570 --> 00:25:34,630
如果你看到这里，我
这里有几句话：

517
00:25:34,630 --> 00:25:37,700
唱歌，bing，ping，ring，ding。

518
00:25:37,700 --> 00:25:40,240
假设我想
匹配一些东西

519
00:25:40,240 --> 00:25:43,210
不是以 s 开头的。

520
00:25:43,210 --> 00:25:45,410
我该怎么写？

521
00:25:45,410 --> 00:25:48,340
所以我会做一个框
括号，它可以说明任何内容

522
00:25:48,340 --> 00:25:52,570
那不是 s 或大写的 S--

523
00:25:52,570 --> 00:25:57,400
所以它不是 s 或大写的 S,
然后在末尾有 -ing 。

524
00:25:57,400 --> 00:25:59,950
这匹配 bing、
ping、ring 和 ding

525
00:25:59,950 --> 00:26:01,305
但不配唱。

526
00:26:04,170 --> 00:26:07,870
所以你看，实际使用正则表达式非常容易


527
00:26:07,870 --> 00:26:11,500
匹配字符或使用
这些特殊字符元

528
00:26:11,500 --> 00:26:15,170
人物，或者锚点，
你可以在这里匹配东西。

529
00:26:15,170 --> 00:26:18,760
所以这里的这个文件——这个
非常重要。

530
00:26:18,760 --> 00:26:20,710
我建议
也许拍个快照

531
00:26:20,710 --> 00:26:25,090
喜欢这张照片，并随时保持
这很方便

532
00:26:25,090 --> 00:26:27,610
您正在使用正则表达式。

533
00:26:27,610 --> 00:26:28,630
所以让我们继续前进。

534
00:26:28,630 --> 00:26:30,850
让我们使用量词。

535
00:26:30,850 --> 00:26:34,480
所以再次，我将回到
这里的电话号码。

536
00:26:34,480 --> 00:26:36,790
如果你还记得，
我们正在写它

537
00:26:36,790 --> 00:26:40,510
通过减去反斜杠
d，反斜杠d，反斜杠d。

538
00:26:40,510 --> 00:26:42,520
然后是一个点，然后
可能是一个反斜杠 d，

539
00:26:42,520 --> 00:26:43,930
反斜杠 d，反斜杠 d。

540
00:26:43,930 --> 00:26:46,750
所以我们写了很多次
反斜杠d。

541
00:26:46,750 --> 00:26:49,120
我们可以使用限定符
来实际做到这一点。

542
00:26:49,120 --> 00:26:50,540
这样做更容易。

543
00:26:50,540 --> 00:26:51,800
让我告诉你。

544
00:26:51,800 --> 00:26:53,890
所以我会说一个反斜杠 d。

545
00:26:53,890 --> 00:26:56,110
假设我想匹配
所有电话号码。

546
00:26:56,110 --> 00:26:59,860
我可以说一个反斜杠 d，并且
我可以使用 quantifies 来定义

547
00:26:59,860 --> 00:27:03,260
这个
数字应该重复多少次。

548
00:27:03,260 --> 00:27:06,200
那么一个
数字应该重复多少次。

549
00:27:06,200 --> 00:27:08,980
所以我们知道区
代码是三位数，

550
00:27:08,980 --> 00:27:11,530
所以我会说
量词是定义的

551
00:27:11,530 --> 00:27:13,130
大括号内。

552
00:27:13,130 --> 00:27:15,010
所以大括号三遍。

553
00:27:15,010 --> 00:27:17,740
所以反斜杠 d
变成了三倍。

554
00:27:17,740 --> 00:27:22,600
然后我需要一个，
比方说，一个方括号。

555
00:27:22,600 --> 00:27:25,880
我要么需要一个
破折号，要么我需要一个点

556
00:27:25,880 --> 00:27:29,450
或者也许我需要一个星号，
也许我也需要一个星号。

557
00:27:29,450 --> 00:27:31,870
那么这个——然后
又是一个反斜杠

558
00:27:31,870 --> 00:27:35,380
d 量词三次。

559
00:27:35,380 --> 00:27:40,420
再说一次，我有一个点、
一个破折号或一个井号。

560
00:27:40,420 --> 00:27:46,600
其实星号和
是星号。

561
00:27:46,600 --> 00:27:49,870
然后，我将再次
使用反斜杠 d。

562
00:27:49,870 --> 00:27:52,750
这将是四次
因为最后四次——

563
00:27:52,750 --> 00:27:55,090
最后一部分有四位数字
。

564
00:27:55,090 --> 00:27:58,000
让我们按 Enter 键。

565
00:27:58,000 --> 00:28:00,760
我相信这应该
匹配我所有的数字。

566
00:28:00,760 --> 00:28:02,040
事实上，它说它是无效的。

567
00:28:04,870 --> 00:28:06,110
让我们看看这个。

568
00:28:06,110 --> 00:28:10,870
所以我有一个反斜杠
d，反斜杠d。

569
00:28:10,870 --> 00:28:12,260
看起来不错。

