در این مطلب، ویدئو عبارات منظم در پایتون | آموزش Regular Expressions Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:46:40
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,399
سلام بچه ها در این ویدیو اجازه دهید
2
00:00:02,399 –> 00:00:03,919
مفهوم
3
00:00:03,919 –> 00:00:06,399
عبارات منظم را در پایتون درک کنیم که
4
00:00:06,399 –> 00:00:08,639
به آن اصطلاحات معمولی را رد می کند
5
00:00:08,639 –> 00:00:11,120
، فرض
6
00:00:11,120 –> 00:00:12,880
کنید یک فایل یا سند دارید و می خواهید
7
00:00:12,880 –> 00:00:14,799
یک شناسه ایمیل یا شماره تلفن خاص را جستجو کنید.
8
00:00:14,799 –> 00:00:16,400
در این
9
00:00:16,400 –> 00:00:17,920
سند می توانید این جستجو را با
10
00:00:17,920 –> 00:00:19,840
مشخص کردن شناسه ایمیل یا شماره تلفن دقیق انجام
11
00:00:19,840 –> 00:00:20,720
12
00:00:20,720 –> 00:00:22,560
دهید، اما فرض کنید سند شما دارای
13
00:00:22,560 –> 00:00:24,240
هزاران شناسه ایمیل مختلف و
14
00:00:24,240 –> 00:00:25,920
هزاران شماره تلفن مختلف است
15
00:00:25,920 –> 00:00:28,000
و سپس هر یک از این شناسه ایمیل
16
00:00:28,000 –> 00:00:29,760
یا هر یک از این شماره تلفن را جستجو کنید. یکی یکی
17
00:00:29,760 –> 00:00:30,080
18
00:00:30,080 –> 00:00:32,800
تقریباً یک کار غیرممکن است، اینجاست
19
00:00:32,800 –> 00:00:33,200
که
20
00:00:33,200 –> 00:00:36,000
عبارات منظم با استفاده از عبارات منظم به تصویر می آیند،
21
00:00:36,000 –> 00:00:37,440
22
00:00:37,440 –> 00:00:39,840
می توانید یک الگو برای
23
00:00:39,840 –> 00:00:41,520
شناسه ایمیل یا شماره تلفن خود
24
00:00:41,520 –> 00:00:43,680
یا برای هر متن دیگری برای آن موضوع تعریف کنید
25
00:00:43,680 –> 00:00:45,360
و سپس این الگو را در خود جستجو کنید.
26
00:00:45,360 –> 00:00:46,879
داده های داده شده
27
00:00:46,879 –> 00:00:48,719
حتی اگر داده های داده شده شما دارای میلیون ها
28
00:00:48,719 –> 00:00:50,480
شناسه ایمیل مختلف و شماره تلفن های مختلف
29
00:00:50,480 –> 00:00:51,120
30
00:00:51,120 –> 00:00:52,879
با استفاده از عبارات منظم باشد، باید
31
00:00:52,879 –> 00:00:54,960
بتوانید جستجو کنید و موارد اضافی را جستجو کنید. ct همه این
32
00:00:54,960 –> 00:00:56,719
شناسههای ایمیل و شماره تلفن یا
33
00:00:56,719 –> 00:00:58,000
هر متن دیگری که در
34
00:00:58,000 –> 00:00:59,760
جستجوی
35
00:00:59,760 –> 00:01:01,440
آن هستید، فقط چهار مرحله را
36
00:01:01,440 –> 00:01:03,039
باید دنبال کنیم تا بتوانیم از عبارات منظم
37
00:01:03,039 –> 00:01:04,799
در پایتون استفاده کنیم
38
00:01:04,799 –> 00:01:07,840
تا توضیح دهیم که فرض کنید یک
39
00:01:07,840 –> 00:01:09,680
متن دارم. اینجا با من است که
40
00:01:09,680 –> 00:01:10,560
مقادیری ساختگی دارد
41
00:01:10,560 –> 00:01:12,640
و من میخواهم تمام اعداد را
42
00:01:12,640 –> 00:01:13,680
از این متن استخراج کنم
43
00:01:13,680 –> 00:01:16,080
، اولین قدم وارد کردن
44
00:01:16,080 –> 00:01:17,680
ماژول عبارات منظم است که
45
00:01:17,680 –> 00:01:20,799
دوباره است، بنابراین فقط import re
46
00:01:20,799 –> 00:01:23,360
تمام توابع و ویژگیهایی را که
47
00:01:23,360 –> 00:01:25,280
برای استفاده نیاز داریم تایپ کنید. عبارات منظم
48
00:01:25,280 –> 00:01:27,040
در این ماژول موجود است، بنابراین ما
49
00:01:27,040 –> 00:01:28,640
باید ابتدا این ماژول را وارد کنیم، بنابراین این
50
00:01:28,640 –> 00:01:30,079
مرحله شماره یک من است،
51
00:01:30,079 –> 00:01:32,320
مرحله بعدی ایجاد الگو است،
52
00:01:32,320 –> 00:01:34,479
بنابراین برای ایجاد الگو می توانم
53
00:01:34,479 –> 00:01:36,479
از تابعی به نام کامپایل استفاده کنم
54
00:01:36,479 –> 00:01:38,240
که بخشی از من است. ماژول re
55
00:01:38,240 –> 00:01:40,960
و سپس در داخل این کامپایل می توانم
56
00:01:40,960 –> 00:01:41,840
آرگومان را
57
00:01:41,840 –> 00:01:44,399
که الگوی من است منتقل کنم، بنابراین فرض کنید از آنجایی که
58
00:01:44,399 –> 00:01:46,320
می خواهم سه رقم را جستجو
59
00:01:46,320 –> 00:01:48,399
کنم، می توانم از یک کلاس کاراکتر به نام
60
00:01:48,399 –> 00:01:50,640
اسلش d استفاده کنم و آن را سه بار تکرار می
61
00:01:50,640 –> 00:01:51,920
کنم زیرا سعی می کنم g برای تطبیق آن با
62
00:01:51,920 –> 00:01:52,880
سه رقم،
63
00:01:52,880 –> 00:01:54,479
بنابراین فعلاً نگران این کلاس کاراکتر نباشید،
64
00:01:54,479 –> 00:01:56,719
من قصد دارم این را
65
00:01:56,719 –> 00:01:58,640
در مدت کوتاهی توضیح دهم، بنابراین فعلاً فقط
66
00:01:58,640 –> 00:02:00,960
به یاد داشته باشید که هر یک از این رقم ها
67
00:02:00,960 –> 00:02:03,439
یک عبارات منظم uh نماد یا یک
68
00:02:03,439 –> 00:02:04,640
کلاس کاراکتر
69
00:02:04,640 –> 00:02:07,200
هستند. اسلش d با یک رقم مطابقت دارد، بنابراین
70
00:02:07,200 –> 00:02:08,720
از آنجایی که میخواهم سه رقم را تطبیق بدهم،
71
00:02:08,720 –> 00:02:09,440
از سه
72
00:02:09,440 –> 00:02:12,239
بار ممیز d استفاده میکنم و
73
00:02:12,239 –> 00:02:12,879
74
00:02:12,879 –> 00:02:15,200
این الگو را به یک متغیر اختصاص میدهم، بنابراین بیایید
75
00:02:15,200 –> 00:02:17,520
بگوییم متغیری مانند الگوی
76
00:02:17,520 –> 00:02:19,920
so و سپس من ایجاد میکنم. می خواهم این را به عنوان یک رشته خام بسازم،
77
00:02:19,920 –> 00:02:21,360
78
00:02:21,360 –> 00:02:24,480
بنابراین رشته خام دقیقاً چیست، بنابراین بیایید
79
00:02:24,480 –> 00:02:25,760
بگوییم اگر
80
00:02:25,760 –> 00:02:29,599
یک عبارت چاپی دارم که در آن می خواهم
81
00:02:29,599 –> 00:02:33,120
چیزی مانند اسلش قدیمی چاپ کنم،
82
00:02:33,120 –> 00:02:35,440
خوب است، بنابراین اگر این برنامه را اجرا کنم،
83
00:02:35,440 –> 00:02:36,319
می توانید ببینید که
84
00:02:36,319 –> 00:02:38,640
حتی اگر اشاره کردم اسلش قدیمی
85
00:02:38,640 –> 00:02:40,640
python جدید مانند قدیمی چاپ می شود در خط بعدی
86
00:02:40,640 –> 00:02:41,840
در حال گسترش است اگر
87
00:02:41,840 –> 00:02:44,319
چون این اسلش n که در
88
00:02:44,319 –> 00:02:44,959
اینجا ذکر کردم در
89
00:02:44,959 –> 00:02:46,800
واقع به عنوان یک کاراکتر خاص
90
00:02:46,800 –> 00:02:48,319
که مانند یک کاراکتر خط جدید رفتار می شود
91
00:02:48,319 –> 00:02:49,200
برای
92
00:02:49,200 –> 00:02:51,280
جلوگیری از این نوع تبدیل انجام
93
00:02:51,280 –> 00:02:53,760
شده توسط پایتون می توانیم به پایتون بگوییم آن سه در
94
00:02:53,760 –> 00:02:55,840
کل این رشته به عنوان یک رشته خام،
95
00:02:55,840 –> 00:02:57,920
بنابراین ما می توانیم این کار را با ذکر یک
96
00:02:57,920 –> 00:03:00,080
r قبل از شروع رشته انجام دهیم، بنابراین وقتی
97
00:03:00,080 –> 00:03:00,560
98
00:03:00,560 –> 00:03:02,400
این را به عنوان یک رشته خام ذکر می کنم،
99
00:03:02,400 –> 00:03:04,080
پایتون با کل این رشته
100
00:03:04,080 –> 00:03:06,080
دقیقاً همانطور که داده شده رفتار می کند، بنابراین اکنون اگر
101
00:03:06,080 –> 00:03:07,360
اجرا کنم این برنامه
102
00:03:07,360 –> 00:03:09,040
می بینید که فقط
103
00:03:09,040 –> 00:03:11,120
اسلش قدیمی جدید را چاپ می کند، بنابراین
104
00:03:11,120 –> 00:03:12,879
حواس پرتی را به عنوان یک کاراکتر خط جدید
105
00:03:12,879 –> 00:03:14,560
یا هر چیز دیگری تفسیر نمی کند،
106
00:03:14,560 –> 00:03:17,680
بنابراین این مزیت استفاده از r و زمانی که ما
107
00:03:17,680 –> 00:03:18,800
در حال ایجاد یک الگو
108
00:03:18,800 –> 00:03:22,080
برای جلوگیری از هرگونه تضاد هستیم، سعی می
109
00:03:22,080 –> 00:03:24,159
کنیم همیشه این را انجام دهیم. رشته خاص به عنوان یک رشته خام،
110
00:03:24,159 –> 00:03:26,560
بنابراین این فقط یک تمرین خوب است،
111
00:03:26,560 –> 00:03:30,000
بنابراین این مرحله دوم من است، بنابراین من فقط آن
112
00:03:30,000 –> 00:03:32,879
را به عنوان مرحله شماره دو خود علامت گذاری می کنم، بنابراین
113
00:03:32,879 –> 00:03:34,879
وقتی الگوی خود را ایجاد کردم، مرحله سوم
114
00:03:34,879 –> 00:03:36,959
این است که سعی کنم این الگو را در
115
00:03:36,959 –> 00:03:38,879
رشته داده شده من مطابقت دهم. بنابراین برای انجام این کار،
116
00:03:38,879 –> 00:03:40,159
یک متغیر مانند
117
00:03:40,159 –> 00:03:41,920
matches ایجاد میکنم و سپس
118
00:03:41,920 –> 00:03:43,760
این الگو را در آن جستجو
119
00:03:43,760 –> 00:03:45,599
میکنم و از تابعی استفاده میکنم،
120
00:03:45,599 –> 00:03:47,840
مثلاً یک جستجو و میخواهم
121
00:03:47,840 –> 00:03:51,040
در متن داده شده جستجو کنم. خوب، پس
122
00:03:51,040 –> 00:03:53,200
این مرحله 3 من است. مرحله 3 من چه می
123
00:03:53,200 –> 00:03:54,080
کند g این است
124
00:03:54,080 –> 00:03:56,720
که من سعی می کنم این الگو را در
125
00:03:56,720 –> 00:03:58,720
این متن خاص جستجو کنم خوب است و
126
00:03:58,720 –> 00:04:00,000
از روشی که
127
00:04:00,000 –> 00:04:02,480
هست یا تابع جستجوی okay استفاده می کنم، بنابراین کاری که
128
00:04:02,480 –> 00:04:03,519
جستجو انجام می دهد این است
129
00:04:03,519 –> 00:04:06,080
که این الگو را در
130
00:04:06,080 –> 00:04:06,959
متن داده شده جستجو کند
131
00:04:06,959 –> 00:04:08,799
و به عنوان به محض اینکه یک مطابقت پیدا کرد، آن
132
00:04:08,799 –> 00:04:10,319
را برمی گرداند، بنابراین
133
00:04:10,319 –> 00:04:11,840
آن را برمی گرداند و در این متغیر
134
00:04:11,840 –> 00:04:12,640
منطبق می کند،
135
00:04:12,640 –> 00:04:16,000
اکنون می خواهم این مطابقت ها را چاپ کنم،
136
00:04:16,000 –> 00:04:19,279
بنابراین اگر این برنامه را اجرا کنم، همین حالا
137
00:04:19,279 –> 00:04:21,440
است،
138
00:04:21,440 –> 00:04:23,280
بنابراین اجازه دهید این را پاک کنم و اگر اجرا کنم
139
00:04:23,280 –> 00:04:25,600
این برنامه
140
00:04:25,600 –> 00:04:27,360
می توانید ببینید که من خروجی دریافت می
141
00:04:27,360 –> 00:04:28,800
کنم که می گوید یک به
142
00:04:28,800 –> 00:04:30,479
سه مطابقت دارد و در فهرست
143
00:04:30,479 –> 00:04:32,560
چهارم به هفتم وجود دارد، بنابراین این
144
00:04:32,560 –> 00:04:34,320
شاخص چهارم به هفتم است و یک دو سه را پیدا کرده است،
145
00:04:34,320 –> 00:04:35,520
146
00:04:35,520 –> 00:04:37,840
بنابراین این همان روش جستجو است. این
147
00:04:37,840 –> 00:04:39,120
کار را انجام داده است، اما
148
00:04:39,120 –> 00:04:40,880
اگر می توانید اینجا را ببینید، من یک دو سه
149
00:04:40,880 –> 00:04:42,479
دارم، من نیز چهار پنج شش دارم،
150
00:04:42,479 –> 00:04:43,120
151
00:04:43,120 –> 00:04:45,840
اما فقط یک عدد یا رقم
152
00:04:45,840 –> 00:04:47,360
یا الگوی خاص با این کار مطابقت داده شده است،
153
00:04:47,360 –> 00:04:49,520
زیرا روش جستجو فقط
154
00:04:49,520 –> 00:04:51,600
به دنبال اولین تطابق ممکن است و
155
00:04:51,600 –> 00:04:53,040
برمی گرداند که
156
00:04:53,040 –> 00:04:54,720
حالا بیایید بگوییم مطابقت کنید اگر من بخواهم
157
00:04:54,720 –> 00:04:56,400
تمام تطابقات ممکن را در این رشته داده شده
158
00:04:56,400 –> 00:04:57,199
159
00:04:57,199 –> 00:04:59,360
یا ورودی داده شده مطابقت دهم، می توانم از
160
00:04:59,360 –> 00:05:01,039
روش دیگری به نام
161
00:05:01,039 –> 00:05:04,639
find iter استفاده کنم، بنابراین این
162
00:05:04,639 –> 00:05:07,680
اساساً تمام تطابق های ممکن را از
163
00:05:07,680 –> 00:05:08,639
ورودی داده شده
164
00:05:08,639 –> 00:05:10,160
برمی گرداند و آن را به این متغیر خاص برمی گرداند.
165
00:05:10,160 –> 00:05:11,840
166
00:05:11,840 –> 00:05:14,080
بنابراین برای چاپ این باید از یک حلقه for استفاده کنم
167
00:05:14,080 –> 00:05:15,360
168
00:05:15,360 –> 00:05:18,240
زیرا برگشتی از متغیر بازگشتی از
169
00:05:18,240 –> 00:05:20,400
find iter یک تکرار کننده است،
170
00:05:20,400 –> 00:05:22,560
بنابراین چندین مقدار خواهد داشت، بنابراین بیایید
171
00:05:22,560 –> 00:05:24,000
از یک حلقه for برای
172
00:05:24,000 –> 00:05:26,240
چاپ همه آن مقادیر استفاده کنیم، بنابراین برای
173
00:05:26,240 –> 00:05:27,039
مثال مطابقت
174
00:05:27,039 –> 00:05:31,919
در مسابقات و سپس من فقط یک پرینت از مسابقه انجام می دهم
175
00:05:31,919 –> 00:05:35,120
خوب است،
176
00:05:35,120 –> 00:05:37,280
بنابراین اگر این برنامه را اجرا کنم، می
177
00:05:37,280 –> 00:05:39,280
بینید که هر سه
178
00:05:39,280 –> 00:05:41,199
مسابقه را چاپ می کند، بنابراین یک دو سه
179
00:05:41,199 –> 00:05:43,360
چهار پنج شش و صد هر سه
180
00:05:43,360 –> 00:05:45,360
عدد Uh را که از این خاص مطابقت داده شده است را چاپ می کند.
181
00:05:45,360 –> 00:05:47,600
ورودی اگر فقط میخواهیم
182
00:05:47,600 –> 00:05:49,680
مطابقت دقیق را چاپ کنیم، میتوانیم
183
00:05:49,680 –> 00:05:52,800
بگوییم گروه نقطه مطابقت دارد،
184
00:05:52,800 –> 00:05:54,800
این نیز تابع دیگری است، بنابراین
185
00:05:54,800 –> 00:05:56,720
فقط کل مقدار مطابق را برمیگرداند،
186
00:05:56,720 –> 00:05:58,880
بنابراین حالا اگر این برنامه را اجرا
187
00:05:58,880 –> 00:05:59,759
کنم، میتوانید آن را
188
00:05:59,759 –> 00:06:01,520
در اکنون مقدار منطبق برگردانده می شود،
189
00:06:01,520 –> 00:06:03,680
بنابراین
190
00:06:03,680 –> 00:06:06,880
اساساً این مرحله 4 من
191
00:06:06,880 –> 00:06:10,000
است، بنابراین من این متن را
192
00:06:10,000 –> 00:06:11,919
داشتم و می خواستم اعداد را جستجو
193
00:06:11,919 –> 00:06:13,039
194
00:06:13,039 –> 00:06:15,360
کنم، بنابراین فقط از عبارات منظم
195
00:06:15,360 –> 00:06:17,440
برای جستجوی اعداد در رشته داده شده استفاده کردم،
196
00:06:17,440 –> 00:06:19,440
بنابراین اگر من تکرار مرحله اول این است
197
00:06:19,440 –> 00:06:20,639
که ماژول را وارد کنید
198
00:06:20,639 –> 00:06:22,639
، مرحله دوم ایجاد یک الگو است
199
00:06:22,639 –> 00:06:24,319
، مرحله سوم جستجوی آن
200
00:06:24,319 –> 00:06:25,759
الگو در متن داده شده است
201
00:06:25,759 –> 00:06:28,319
و مرحله چهارم این است که در این حالت
202
00:06:28,319 –> 00:06:29,120
من فقط
203
00:06:29,120 –> 00:06:31,600
این الگو را استخراج می کنم و آن را چاپ می کنم
204
00:06:31,600 –> 00:06:33,440
اگر شما می خواهید هر کار دیگری را
205
00:06:33,440 –> 00:06:35,280
با استفاده از مقادیر استخراج شده انجام دهید، می توانید
206
00:06:35,280 –> 00:06:36,880
آن را در برنامه خود انجام دهید، بنابراین
207
00:06:36,880 –> 00:06:38,880
این کل جریان نحوه استفاده از
208
00:06:38,880 –> 00:06:40,560
عبارات منظم در پایتون است،
209
00:06:40,560 –> 00:06:43,280
اکنون مهمترین مرحله در اینجا
210
00:06:43,280 –> 00:06:44,960
مرحله مرحله دوم است که
211
00:06:44,960 –> 00:06:46,240
ایجاد الگو
212
00:06:46,240 –> 00:06:48,080
در اینجا من ساده ترین
213
00:06:48,080 –> 00:06:49,599
الگوهایی را ایجاد کرده ام که می توانید به آن فکر کنید،
214
00:06:49,599 –> 00:06:52,639
اما اگر می خواستم
215
00:06:52,639 –> 00:06:55,199
رشته های پیچیده ای مانند آدرس آدرس ایمیل یا شماره تلفن
216
00:06:55,199 –> 00:06:55,759
217
00:06:55,759 –> 00:06:58,639
یا تاریخ را مطابقت دهم، باید الگوهای کمی پیچیده تر بنویسم،
218
00:06:58,639 –> 00:07:00,319
219
00:07:00,319 –> 00:07:04,000
بنابراین اکنون بیایید سعی کنیم
220
00:07:04,000 –> 00:07:06,000
کلاسهای کاراکتر نمادهای مختلف
221
00:07:06,000 –> 00:07:07,280
و کاراکترهای ویژهای را که
222
00:07:07,280 –> 00:07:10,080
در عبارات منظم موجود هستند درک کنیم،
223
00:07:10,080 –> 00:07:11,360
ابتدا به
224
00:07:11,360 –> 00:07:12,880
کلاسهای کاراکترهای مختلف که در
225
00:07:12,880 –> 00:07:14,479
عبارات منظم موجود هستند که میتوانیم در پایتون استفاده کنیم، نگاه کنیم،
226
00:07:14,479 –> 00:07:15,120
227
00:07:15,120 –> 00:07:17,199
بنابراین اولین مورد اسلش d است که در
228
00:07:17,199 –> 00:07:19,440
اصل مخفف رقم است. کاراکتر
229
00:07:19,440 –> 00:07:21,680
بنابراین این اسلش d با هر
230
00:07:21,680 –> 00:07:23,440
رقمی از 0 تا 9 مطابقت دارد،
231
00:07:23,440 –> 00:07:25,360
بنابراین مانند آنچه در برنامه قبلی خود در اینجا دیدیم،
232
00:07:25,360 –> 00:07:27,759
زیرا میخواستم ارقام درخت را مطابقت
233
00:07:27,759 –> 00:07:29,599
دهم، فقط به اسلش d
234
00:07:29,599 –> 00:07:30,880
اسلش d اسلش d اشاره کردم
235
00:07:30,880 –> 00:07:32,639
بنابراین هر یک از این اسلش d با
236
00:07:32,639 –> 00:07:34,560
یک رقم از آنجایی که میخواستم سه رقم را مطابقت
237
00:07:34,560 –> 00:07:35,919
دهم، فقط آن را سه بار مختلف ذکر کردم.
238
00:07:35,919 –> 00:07:36,639
239
00:07:36,639 –> 00:07:38,800
240
00:07:38,800 –> 00:07:39,759
241
00:07:39,759 –> 00:07:42,960
242
00:07:42,960 –> 00:07:45,120
243
00:07:45,120 –> 00:07:46,960
244
00:07:46,960 –> 00:07:48,800
245
00:07:48,800 –> 00:07:50,879
کاراکتر Space با یک فاصله
246
00:07:50,879 –> 00:07:54,000
یک خط جدید یا یک کاراکتر تب مطابقت میکند و بعد
247
00:07:54,000 –> 00:07:57,280
با حروف بزرگ اسلش d داریم که اساساً
248
00:07:57,280 –> 00:07:58,000
249
00:07:58,000 –> 00:08:00,639
نوعی معکوس کردن اسلش کوچک d است. بنابراین این
250
00:08:00,639 –> 00:08:02,720
اسلش بزرگ d کاری که انجام می دهد این است
251
00:08:02,720 –> 00:08:04,879
که سعی می کند با یک کاراکتر که رقمی نیست مطابقت داشته باشد
252
00:08:04,879 –> 00:08:05,759
،
253
00:08:05,759 –> 00:08:08,479
بنابراین هر چیزی که
254
00:08:08,479 –> 00:08:10,240
رقمی از 0 تا 9 نباشد
255
00:08:10,240 –> 00:08:12,639
با استفاده از اسلش بزرگ
256
00:08:12,639 –> 00:08:13,280
d
257
00:08:13,280 –> 00:08:16,160
در حالی که اسلش بزرگ w یا ممیز
258
00:08:16,160 –> 00:08:17,280
w بزرگ است مطابقت داده می شود.
259
00:08:17,280 –> 00:08:19,599
با هر کاراکتر غیر کلمه ای مطابقت دارد،
260
00:08:19,599 –> 00:08:21,520
بنابراین اساساً معکوس کردن اسلش
261
00:08:21,520 –> 00:08:22,720
کوچک w است،
262
00:08:22,720 –> 00:08:25,120
بنابراین اسلش بزرگ w با هر
263
00:08:25,120 –> 00:08:27,599
کاراکتری مطابقت دارد که یا یک حرف
264
00:08:27,599 –> 00:08:30,319
نباشد، نه یک رقم و نه زیرخط خوب است،
265
00:08:30,319 –> 00:08:31,520
به طور مشابه، اسلش
266
00:08:31,520 –> 00:08:33,120
بزرگ s با هر کاراکتری مطابقت خواهد داشت.
267
00:08:33,120 –> 00:08:34,958
این یک فاصله،
268
00:08:34,958 –> 00:08:38,320
یک خط جدید یا یک کاراکتر برگه نیست، خوب است، بنابراین
269
00:08:38,320 –> 00:08:39,760
این باید بسیار ساده باشد درست است،
270
00:08:39,760 –> 00:08:41,120
اینها همه کلاس های کاراکترهایی هستند که در
271
00:08:41,120 –> 00:08:42,958
دسترس هستند، تعدادی دیگر نیز وجود دارند،
272
00:08:42,958 –> 00:08:43,279
273
00:08:43,279 –> 00:08:45,040
اما آنقدرها هم پرکاربرد نیستند، ابتدا باید
274
00:08:45,040 –> 00:08:46,800
با آنها آشنا شوید.
275
00:08:46,800 –> 00:08:48,480
وقتی این کلاسهای کاراکتر را
276
00:08:48,480 –> 00:08:50,800
فهمیدید، چند نماد
277
00:08:50,800 –> 00:08:52,399
نیز وجود دارد که میتوانیم از آنها در عبارات منظم استفاده کنیم،
278
00:08:52,399 –> 00:08:53,279
279
00:08:53,279 –> 00:08:56,320
بنابراین این نمادها یا کاراکترها
280
00:08:56,320 –> 00:08:58,320
میتوانند همراه با این کلاسهای کاراکتر
281
00:08:58,320 –> 00:09:00,480
برای اجرای s استفاده شوند. یک کار خاص،
282
00:09:00,480 –> 00:09:03,600
بنابراین بیایید آنها را یکی
283
00:09:03,600 –> 00:09:05,600
یکی بررسی کنیم، اولی کاراکتر گروه است که
284
00:09:05,600 –> 00:09:07,600
اساساً می توانیم چندین
285
00:09:07,600 –> 00:09:09,200
الگو را در یک گروه واحد گروه
286
00:09:09,200 –> 00:09:11,040
بندی کنیم. گروه بندی چندین الگو در یک گروه واحد دارای چندین مزیت است
287
00:09:11,040 –> 00:09:12,959
288
00:09:12,959 –> 00:09:13,440
289
00:09:13,440 –> 00:09:15,600
که چند نمونه را بررسی می کنیم. در
290
00:09:15,600 –> 00:09:16,800
مدت کوتاهی
291
00:09:16,800 –> 00:09:18,959
بیایید به کاراکترهای دیگر نگاهی بیندازیم تا
292
00:09:18,959 –> 00:09:20,720
به علاوه و ستاره داشته باشیم،
293
00:09:20,720 –> 00:09:23,440
بنابراین اساساً چیزی که plus انجام می دهد این است که اگر
294
00:09:23,440 –> 00:09:25,279
یک علامت مثبت در
295
00:09:25,279 –> 00:09:27,760
کنار کلاس کاراکتر نشان دهم،
296
00:09:27,760 –> 00:09:29,839
297
00:09:29,839 –> 00:09:32,320
یک بار یا بیش از یک بار به طور مشابه به دنبال این کلاس کاراکتر خاص می گردد.
298
00:09:32,320 –> 00:09:33,040
299
00:09:33,040 –> 00:09:34,880
ستاره تقریباً شبیه به پلاس است، اما
300
00:09:34,880 –> 00:09:36,640
تفاوت این است که ستاره مطابقت دارد، حتی اگر
301
00:09:36,640 –> 00:09:38,000
هیچ مقداری وجود نداشته باشد
302
00:09:38,000 –> 00:09:40,240
، اگر بخواهیم
303
00:09:40,240 –> 00:09:42,080
یک الگوی خاص را
304
00:09:42,080 –> 00:09:44,640
چندین بار تکرار کنیم، میتوانیم
305
00:09:44,640 –> 00:09:47,279
آن عدد را در داخل پرانتزها مشخص کنیم، بنابراین بیایید
306
00:09:47,279 –> 00:09:48,560
بگوییم اگر من میخواستم
307
00:09:48,560 –> 00:09:50,399
سه رقم مختلف را مطابقت دهم، سپس
308
00:09:50,399 –> 00:09:51,680
فقط میتوانم
309
00:09:51,680 –> 00:09:53,839
اسلش d را تایپ کنم و سپس در داخل پرانتزها
310
00:09:53,839 –> 00:09:55,519
فقط سه رقم را ذکر کردم، بنابراین این
311
00:09:55,519 –> 00:09:57,519
سه رقم مختلف برای مثال قبلی مطابقت دارد. اگر
312
00:09:57,519 –> 00:09:59,839
به برنامهای که اینجا نوشتم برگردم،
313
00:09:59,839 –> 00:10:02,079
بنابراین میخواستم سه رقم را با هم تطبیق دهم و
314
00:10:02,079 –> 00:10:04,160
فقط به اسلش d اسلش d اسلش d اشاره کردم
315
00:10:04,160 –> 00:10:06,560
، میتوانم همان را فقط با
316
00:10:06,560 –> 00:10:07,920
ذکر پرانتز
317
00:10:07,920 –> 00:10:10,640
و قرار دادن 3 در اینجا بنویسم اگر این برنامه را اجرا کنم.
318
00:10:10,640 –> 00:10:11,839
319
00:10:11,839 –> 00:10:13,200
می بینید که من
320
00:10:13,200 –> 00:10:15,040
همان خروجی را می گیرم زیرا چه به
321
00:10:15,040 –> 00:10:16,640
اسلش d اسلش d اسلش d
322
00:10:16,640 –> 00:10:18,800
اشاره کنم یا فقط به اسلش d اشاره کنم و در
323
00:10:18,800 –> 00:10:19,760
داخل پرانتز
324
00:10:19,760 –> 00:10:21,440
سه اساساً معنی آن یکسان است، بنابراین
325
00:10:21,440 –> 00:10:22,959
اساساً
326
00:10:22,959 –> 00:10:25,040
الگوی سه عدد متفاوت را تکرار می کند. در
327
00:10:25,040 –> 00:10:26,000
مواقعی
328
00:10:26,000 –> 00:10:27,760
استفاده از بریس مزایای دیگری
329
00:10:27,760 –> 00:10:29,040
نیز دارد،
330
00:10:29,040 –> 00:10:31,279
بنابراین اگر میخواهم به دنبال الگوی
331
00:10:31,279 –> 00:10:32,240
332
00:10:32,240 –> 00:10:34,079
خاصی در محدوده خاصی بگردم، بنابراین فرض کنید
333
00:10:34,079 –> 00:10:35,360
میخواهم ببینم
334
00:10:35,360 –> 00:10:38,000
سه رقم است یا حداکثر پنج رقم،
335
00:10:38,000 –> 00:10:39,440
میتوانم فقط سه رقم را ذکر کنم. پنج تا
336
00:10:39,440 –> 00:10:41,440
حداقل سه رقمی
337
00:10:41,440 –> 00:10:43,519
باشد یا حداقل با
338
00:10:43,519 –> 00:10:44,640
حداکثر پنج رقم مطابقت
339
00:10:44,640 –> 00:10:47,040
داشته باشد، بنابراین اگر نمی خواستم یک عدد حداکثر را ذکر
340
00:10:47,040 –> 00:10:48,800
کنم بنابراین می توانم فقط سه کاما بگذارم در
341
00:10:48,800 –> 00:10:50,640
این مورد با حداقل
342
00:10:50,640 –> 00:10:51,600
سه رقم
343
00:10:51,600 –> 00:10:53,760
تا هر شماره تعداد ارقام به طور مشابه اگر
344
00:10:53,760 –> 00:10:55,839
من حداقل مقدار را
345
00:10:55,839 –> 00:10:58,399
ذکر نمیکردم، با حداقل ارقام صفر مطابقت داشت،
346
00:10:58,399 –> 00:11:00,000
بنابراین اساساً حتی اگر رقمی وجود نداشته باشد،
347
00:11:00,000 –> 00:11:00,480
348
00:11:00,480 –> 00:11:02,160
این الگو همچنان مطابقت دارد و
349
00:11:02,160 –> 00:11:03,839
حداکثر تا پنج رقم مطابقت دارد،
350
00:11:03,839 –> 00:11:04,560
351
00:11:04,560 –> 00:11:07,360
بنابراین این چیزی است که پرانتز
352
00:11:07,360 –> 00:11:08,720
کاراکتر بعدی را یک کاراکتر علامت سوال
353
00:11:08,720 –> 00:11:09,279
است
354
00:11:09,279 –> 00:11:11,200
که در عبارت منظم دارای دو معنی متفاوت است
355
00:11:11,200 –> 00:11:12,720
، اولین مورد این است که می
356
00:11:12,720 –> 00:11:14,640
توان از آن برای نشان دادن یک
357
00:11:14,640 –> 00:11:17,040
جستجوی اختیاری uh استفاده کرد، بنابراین بیایید بگوییم که آیا من یک
358
00:11:17,040 –> 00:11:19,120
الگوی مانند اسلش d دارم و اگر من
359
00:11:19,120 –> 00:11:20,880
سؤال را نشان می دهم. بعد از آن علامت بزنید، به این معنی است
360
00:11:20,880 –> 00:11:22,880
که این الگوی اسلش d یک الگوی اختیاری
361
00:11:22,880 –> 00:11:24,560
است، بنابراین حتی اگر این الگو
362
00:11:24,560 –> 00:11:26,240
با رشته مطابقت داشته باشد یا
363
00:11:26,240 –> 00:11:28,560
نباشد، کل تطابق
364
00:11:28,560 –> 00:11:29,279
با موفقیت انجام می شود،
365
00:11:29,279 –> 00:11:31,040
خوب است، بنابراین فقط یک الگوی خاص را
366
00:11:31,040 –> 00:11:32,640
به عنوان یک الگوی اختیاری
367
00:11:32,640 –> 00:11:35,279
می سازد. استفاده بعدی از استفاده از علامت سوال
368
00:11:35,279 –> 00:11:37,200
این است که اگر بعد از پرانتز از علامت سوال استفاده
369
00:11:37,200 –> 00:11:39,200
کنید، نشان می دهد که
370
00:11:39,200 –> 00:11:39,839
باید
371
00:11:39,839 –> 00:11:42,720
با کوتاه ترین تطابق ممکن مطابقت داشته باشید،
372
00:11:42,720 –> 00:11:43,200
بنابراین
373
00:11:43,200 –> 00:11:45,360
برای درک این موضوع فرض کنید شما h یک
374
00:11:45,360 –> 00:11:46,320
رشته مانند سلام
375
00:11:46,320 –> 00:11:48,640
سلام سلام و الگوی شما چیزی شبیه
376
00:11:48,640 –> 00:11:49,839
به سلام اشاره
377
00:11:49,839 –> 00:11:52,000
کردید، آن را در داخل گروه قرار دهید، بنابراین
378
00:11:52,000 –> 00:11:52,959
مانند
379
00:11:52,959 –> 00:11:55,120
یک کاراکتر واحد یا چیزی بالا و
380
00:11:55,120 –> 00:11:56,880
سپس در بیرون در پرانتزهایی
381
00:11:56,880 –> 00:11:58,320
که یک دو سه را ذکر کردید در نظر گرفته می شود. سعی کنید
382
00:11:58,320 –> 00:11:59,040
383
00:11:59,040 –> 00:12:00,880
حداقل یک حداکثر
384
00:12:00,880 –> 00:12:02,800
سه بار تطبیق دهید زیرا من از هیچ
385
00:12:02,800 –> 00:12:04,320
علامت سوالی در اینجا استفاده نمیکنم، سعی میکند
386
00:12:04,320 –> 00:12:05,360
با حداکثر
387
00:12:05,360 –> 00:12:07,040
یا طولانیترین تطابق ممکن مطابقت داشته باشد که
388
00:12:07,040 –> 00:12:09,120
بسیار زیاد است، حتی اگر من نشان
389
00:12:09,120 –> 00:12:11,680
میدهم که تلاش میکنم فقط با یک بالا تطبیق دهید
390
00:12:11,680 –> 00:12:12,800
زیرا این
391
00:12:12,800 –> 00:12:14,240
ورودی خاص دارای سه اوج مختلف است،
392
00:12:14,240 –> 00:12:15,680
سعی میکند با هر سه بالا مطابقت داشته باشد و
393
00:12:15,680 –> 00:12:16,480
در حال بازگشت
394
00:12:16,480 –> 00:12:18,560
بالا و بالا است، اما فرض کنید اگر
395
00:12:18,560 –> 00:12:20,399
میخواستم کوتاهترین تطابق ممکن را
396
00:12:20,399 –> 00:12:22,240
بعد از پرانتز انجام دهم، فقط میتوانم یک
397
00:12:22,240 –> 00:12:24,079
علامت سوال ذکر کنم. من علامت سوال را ذکر
398
00:12:24,079 –> 00:12:24,399
399
00:12:24,399 –> 00:12:25,920
کردم، سعی می کنیم کوتاه ترین تطابق ممکن را انجام دهیم،
400
00:12:25,920 –> 00:12:27,920
بنابراین سعی می کنیم با سلام مطابقت
401
00:12:27,920 –> 00:12:30,079
داشته باشد، زیرا کوتاه ترین
402
00:12:30,079 –> 00:12:32,000
تطابق ممکن را بعد از خود شخصیت دوم پیدا می
403
00:12:32,000 –> 00:12:34,240
کند، فقط اولین ها را برمی گرداند. t دو
404
00:12:34,240 –> 00:12:35,760
کاراکتر که زیاد است، بنابراین
405
00:12:35,760 –> 00:12:37,600
با استفاده از علامت سوال بعد از پرانتز می
406
00:12:37,600 –> 00:12:39,760
توانید به پایتون بگویید که کوتاه ترین بازگشت را انجام دهد،
407
00:12:39,760 –> 00:12:42,160
کوتاه ترین مطابقت ممکن را انجام دهد،
408
00:12:42,160 –> 00:12:43,120
کاراکتر بعدی
409
00:12:43,120 –> 00:12:45,600
کاراکتر نقطه است.
410
00:12:45,600 –> 00:12:47,600
411
00:12:47,600 –> 00:12:50,720
با هر مقداری، بنابراین
412
00:12:50,720 –> 00:12:52,560
هر مقداری غیر از کاراکتر خط جدید،
413
00:12:52,560 –> 00:12:53,279
414
00:12:53,279 –> 00:12:55,279
کاراکتر بعدی که داریم،
415
00:12:55,279 –> 00:12:56,320
کروشههای مربع است،
416
00:12:56,320 –> 00:12:58,720
بنابراین اساساً به ما کمک میکند تا
417
00:12:58,720 –> 00:12:59,839
کلاس کاراکتر خودمان را ایجاد کنیم،
418
00:12:59,839 –> 00:13:02,079
کلاس کاراکتری که در اینجا دیدیم ممکن است
419
00:13:02,079 –> 00:13:03,600
برای مطابقت با همه
420
00:13:03,600 –> 00:13:05,120
کاراکترها کافی نباشد. بیایید بگوییم اگر میخواستم
421
00:13:05,120 –> 00:13:07,519
فقط الفبای انگلیسی a به z
422
00:13:07,519 –> 00:13:09,680
را مطابقت دهم، هیچ
423
00:13:09,680 –> 00:13:11,440
کلاس کاراکتری داخلی برای انجام
424
00:13:11,440 –> 00:13:12,800
425
00:13:12,800 –> 00:13:14,160
آن ندارم، زیرا اسلش d نیز با زیرخط مطابقت دارد و همچنین
426
00:13:14,160 –> 00:13:15,200
اعداد را به درستی مطابقت میدهد،
427
00:13:15,200 –> 00:13:18,079
بنابراین به همین دلیل است که میتوانیم از براکت استفاده کنیم.
428
00:13:18,079 –> 00:13:19,200
429
00:13:19,200 –> 00:13:21,200
بنابراین ما میتوانیم
430
00:13:21,200 –> 00:13:22,880
همه کاراکترهایی را که
431
00:13:22,880 –> 00:13:23,440
میخواهیم مطابقت
432
00:13:23,440 –> 00:13:25,120
دهیم ذکر کنیم، بنابراین میتوانم چیزی
433
00:13:25,120 –> 00:13:26,639
شبیه به این را ذکر کنم، بنابراین اگر میخواستم با همه اوباش مطابقت داشته باشم
434
00:13:26,639 –> 00:13:28,079
ile کاراکترها من فقط می توانم
435
00:13:28,079 –> 00:13:29,680
یک e i o u را ذکر کنم،
436
00:13:29,680 –> 00:13:31,920
بنابراین فقط این پنج کاراکتر مطابقت پیدا می کنند
437
00:13:31,920 –> 00:13:32,880
، خوب است،
438
00:13:32,880 –> 00:13:36,000
اما اگر از خط تیره ای استفاده کنم که یک خط تیره z
439
00:13:36,000 –> 00:13:37,279
است، به این معنی
440
00:13:37,279 –> 00:13:38,959
است که
441
00:13:38,959 –> 00:13:40,720
اگر بخواهم با تمام حروف بزرگ انگلیسی مطابقت داشته باشم، با تمام حروف انگلیسی که حروف کوچک هستند مطابقت دارد.
442
00:13:40,720 –> 00:13:41,519
443
00:13:41,519 –> 00:13:42,800
سپس من فقط می توانم
444
00:13:42,800 –> 00:13:45,199
از حروف بزرگ a تا بزرگ z ذکر کنم، بسیار
445
00:13:45,199 –> 00:13:46,959
خوب و سپس صفر تا نه
446
00:13:46,959 –> 00:13:48,959
برای همه
447
00:13:48,959 –> 00:13:50,399
ارقام مطابقت
448
00:13:50,399 –> 00:13:51,199
449
00:13:51,199 –> 00:13:53,839
450
00:13:53,839 –> 00:13:54,240
451
00:13:54,240 –> 00:13:56,160
دارد.
452
00:13:56,160 –> 00:13:57,839
سمت چپ لوله
453
00:13:57,839 –> 00:13:59,279
یا سعی می کند با شخصیتی که
454
00:13:59,279 –> 00:14:00,800
در سمت راست پیپ ذکر شده مطابقت داشته باشد،
455
00:14:00,800 –> 00:14:01,440
456
00:14:01,440 –> 00:14:03,040
نگران نباشید اگر کمی
457
00:14:03,040 –> 00:14:04,959
گیج کننده به نظر می رسد زیرا به زودی
458
00:14:04,959 –> 00:14:06,639
برنامه هایی را می نویسیم و از الگوهای مختلف استفاده می کنیم
459
00:14:06,639 –> 00:14:08,000
ما قصد داریم از
460
00:14:08,000 –> 00:14:08,880
همه این نمادها
461
00:14:08,880 –> 00:14:10,399
استفاده کنیم که
462
00:14:10,399 –> 00:14:12,480
درک عبارات منظم را برای شما بسیار ساده تر می کند،
463
00:14:12,480 –> 00:14:15,519
بنابراین کاراکتر بعدی
464
00:14:15,519 –> 00:14:16,560
نماد هویج است
465
00:14:16,560 –> 00:14:18,720
بنابراین هویج نماد uh در عبارت منظم دو
466
00:14:18,720 –> 00:14:20,160
معنی متفاوت دارد
467
00:14:20,160 –> 00:14:23,040
و اولین
468
00:14:23,040 –> 00:14:24,880
آن این است که می توان از آن برای مطابقت با
469
00:14:24,880 –> 00:14:26,000
ابتدای متن استفاده کرد،
470
00:14:26,000 –> 00:14:27,760
بنابراین فرض کنید می خواهید فقط متنی را مطابقت
471
00:14:27,760 –> 00:14:30,399
دهید که با یک مقدار خاص شروع می شود
472
00:14:30,399 –> 00:14:32,399
سپس می توانید از نماد قیراط استفاده کنید. بنابراین
473
00:14:32,399 –> 00:14:34,240
این یکی از معنی استفاده از نماد صحیح
474
00:14:34,240 –> 00:14:36,079
، معنای دوم این است که
475
00:14:36,079 –> 00:14:38,000
اگر من از نماد هویج در داخل
476
00:14:38,000 –> 00:14:40,240
پرانتزهای مربع خود مانند این استفاده
477
00:14:40,240 –> 00:14:42,959
کنم، اساساً اگر
478
00:14:42,959 –> 00:14:44,079
نویسههای موبایل را در داخل
479
00:14:44,079 –> 00:14:46,079
پرانتز مربع بدون علامت هویج
480
00:14:46,079 –> 00:14:48,000
ذکر کنم، با هر کاراکتری مطابقت خواهد
481
00:14:48,000 –> 00:14:49,600
داشت. یک کاراکتر آوازی است
482
00:14:49,600 –> 00:14:51,279
اما از آنجایی که من در اینجا از نماد هویج استفاده می
483
00:14:51,279 –> 00:14:53,279
کنم، پس کاری که انجام می دهد این است که سعی
484
00:14:53,279 –> 00:14:54,880
می کند با هر شخصیتی
485
00:14:54,880 –> 00:14:57,120
که یک کاراکتر کلامی نیست مطابقت داشته باشد، بنابراین این
486
00:14:57,120 –> 00:14:59,519
اساساً کاری
487
00:14:59,519 –> 00:15:01,600
را انجام می دهد که براکت شما در آخرین
488
00:15:01,600 –> 00:15:03,440
کاراکتر ما انجام می دهد. در اینجا می خواهم نگاه
489
00:15:03,440 –> 00:15:05,360
کنم نماد دلار است که
490
00:15:05,360 –> 00:15:06,480
اساساً برای
491
00:15:06,480 –> 00:15:09,120
مطابقت با انتهای متن استفاده می شود، بنابراین اگر می خواهم به
492
00:15:09,120 –> 00:15:10,880
دنبال متنی بگردم که با یک کاراکتر خاص ختم می
493
00:15:10,880 –> 00:15:12,000
494
00:15:12,000 –> 00:15:13,839
شود فقط می توانید آن کاراکتر را ذکر کنید
495
00:15:13,839 –> 00:15:16,079
و سپس در پایان یک دلار را ذکر کنید،
496
00:15:16,079 –> 00:15:18,320
ما همچنین لیستی از کاراکترهای خاص داریم،
497
00:15:18,320 –> 00:15:20,240
اینها همه کاراکترهایی هستند
498
00:15:20,240 –> 00:15:21,920
که در بیان منظم معنای خاصی دارند،
499
00:15:21,920 –> 00:15:23,040
بنابراین
500
00:15:23,040 –> 00:15:24,639
اگر می خواهید الگویی بنویسید که در آن می
501
00:15:24,639 –> 00:15:26,560
خواهید به طور خاص این کاراکترها را جستجو کنید.
502
00:15:26,560 –> 00:15:27,519
کاراکترها و
503
00:15:27,519 –> 00:15:29,680
سپس شما باید از این کاراکترها فرار کنید
504
00:15:29,680 –> 00:15:31,360
چگونه می توانید از این کاراکترها فرار کنید این است
505
00:15:31,360 –> 00:15:32,560
که
506
00:15:32,560 –> 00:15:35,199
قبل از استفاده از این کاراکترها فقط یک علامت بک اسلش اضافه کنید،
507
00:15:35,199 –> 00:15:37,440
اکنون ما می خواهیم از همه این کاراکترها استفاده کنیم
508
00:15:37,440 –> 00:15:39,199
و برنامه هایی بنویسیم امیدواریم
509
00:15:39,199 –> 00:15:40,880
که راه بهتری برای درک مفهوم و درک شما باشد.
510
00:15:40,880 –> 00:15:42,639
چگونه از عبارات معمولی استفاده کنیم،
511
00:15:42,639 –> 00:15:45,120
بنابراین من یک متن در اینجا با خود
512
00:15:45,120 –> 00:15:45,600
دارم،
513
00:15:45,600 –> 00:15:47,600
بنابراین در این متن می توانم ببینم که من
514
00:15:47,600 –> 00:15:48,720
چند تاریخ
515
00:15:48,720 –> 00:15:51,519
دارم و تعداد کمی شناسه ایمیل ذکر شده دارم،
516
00:15:51,519 –> 00:15:53,759
همچنین چند شماره تلفن دارم، خوب است،
517
00:15:53,759 –> 00:15:56,480
بنابراین اکنون می خواهیم مقداری بنویسیم.
518
00:15:56,480 –> 00:15:58,959
برنامه ای با استفاده از عبارات منظم برای
519
00:15:58,959 –> 00:16:01,199
مطابقت با این تاریخ ها شناسه های ایمیل و
520
00:16:01,199 –> 00:16:03,279
شماره تلفن، بنابراین بیایید با
521
00:16:03,279 –> 00:16:05,519
تلاش برای نوشتن برنامه ای شروع کنیم که
522
00:16:05,519 –> 00:16:06,480
523
00:16:06,480 –> 00:16:09,440
همه تاریخ ها را مطابقت داشته باشد، بنابراین همانطور که به شما گفتم
524
00:16:09,440 –> 00:16:11,120
اولین گام در استفاده از عبارت منظم
525
00:16:11,120 –> 00:16:13,040
، وارد کردن ماژول مدل عبارت منظم است
526
00:16:13,040 –> 00:16:13,519
527
00:16:13,519 –> 00:16:16,560
که همان import re است، بنابراین وقتی
528
00:16:16,560 –> 00:16:18,079
این ماژول را وارد کردم،
529
00:16:18,079 –> 00:16:19,759
گام بعدی ایجاد الگو است، بنابراین فرض کنید
530
00:16:19,759 –> 00:16:21,600
میخواهم این الگوی تاریخ را نامگذاری کنم،
531
00:16:21,600 –> 00:16:23,920
بنابراین ابتدا من. من قصد دارم
532
00:16:23,920 –> 00:16:25,920
تمام تاریخهای این رشته را جستجو کنم،
533
00:16:25,920 –> 00:16:29,360
بنابراین فرض کنید اکنون برای ایجاد این
534
00:16:29,360 –> 00:16:31,199
الگو، فقط میگویم re dot
535
00:16:31,199 –> 00:16:33,759
compile و سپس فقط یک رشته خام را پاس میکنم،
536
00:16:33,759 –> 00:16:34,240
537
00:16:34,240 –> 00:16:37,040
بنابراین باید الگوی خود را در اینجا ایجاد کنم،
538
00:16:37,040 –> 00:16:37,440
اجازه دهید
539
00:16:37,440 –> 00:16:40,560
با دیدن این سه شروع کنیم. تاریخ ها بنابراین
540
00:16:40,560 –> 00:16:42,079
این سه تاریخ من
541
00:16:42,079 –> 00:16:44,160
دو کاراکتر اول را دارم یک رقم است
542
00:16:44,160 –> 00:16:45,600
که به دنبال آن یک خط تیره
543
00:16:45,600 –> 00:16:47,440
و سپس سه حرف
544
00:16:47,440 –> 00:16:49,199
و سپس دوباره یک خط تیره و
545
00:16:49,199 –> 00:16:50,000
سپس دوباره چهار رقم دنبال می شود،
546
00:16:50,000 –> 00:16:52,240
بنابراین این چیزی است که ما می دانیم و
547
00:16:52,240 –> 00:16:54,639
این قالب است در تمام این سه تاریخ یکسان است،
548
00:16:54,639 –> 00:16:55,360
549
00:16:55,360 –> 00:16:57,519
بنابراین ابتدا سعی می کنیم الگویی بنویسیم
550
00:16:57,519 –> 00:16:58,480
که با
551
00:16:58,480 –> 00:17:01,120
این قالب مطابقت داشته باشد، خوب این قالب تاریخ، بنابراین
552
00:17:01,120 –> 00:17:02,720
بدانیم که دو رقم
553
00:17:02,720 –> 00:17:04,959
اول، دو کاراکتر اول یک رقم هستند، بنابراین من
554
00:17:04,959 –> 00:17:06,160
فقط اسلش d
555
00:17:06,160 –> 00:17:08,799
اسلش d را تایپ می کنم زیرا می دانم که اسلش d
556
00:17:08,799 –> 00:17:10,959
با هر رقمی از صفر تا نه مطابقت دارد، عدد
557
00:17:10,959 –> 00:17:13,439
بعدی یک خط تیره است، بنابراین می توانم
558
00:17:13,439 –> 00:17:15,760
بلافاصله یک خط تیره بگذارم
559
00:17:15,760 –> 00:17:19,039
و سپس سه حرف را دنبال
560
00:17:19,039 –> 00:17:22,319
کنم، بنابراین می توانم با استفاده از کلمه کلاس کاراکتر حروف را ذکر کنم،
561
00:17:22,319 –> 00:17:24,160
اما
562
00:17:24,160 –> 00:17:25,919
مشکل با کلاس کاراکتر کلمه این است
563
00:17:25,919 –> 00:17:27,599
که با زیرخط و
564
00:17:27,599 –> 00:17:29,039
همچنین یک لا
565
00:17:29,039 –> 00:17:31,679
یا یک رقم مطابقت دارد، اما من فقط میخواهم آن را
566
00:17:31,679 –> 00:17:32,960
با سه با سه
567
00:17:32,960 –> 00:17:35,520
حرف Uh تطبیق دهم، بنابراین در چنین مواردی که میخواهم
568
00:17:35,520 –> 00:17:36,000
569
00:17:36,000 –> 00:17:38,320
فقط یک مجموعه خاص از کاراکترهای کلاس کاراکتر را با ما مطابقت دهم
570
00:17:38,320 –> 00:17:40,000
571
00:17:40,000 –> 00:17:43,280
. می توان از نمادی استفاده کرد که
572
00:17:43,280 –> 00:17:45,200
اساساً براکت است،
573
00:17:45,200 –> 00:17:47,039
بنابراین این نماد براکت
574
00:17:47,039 –> 00:17:48,720
اساساً برای ایجاد
575
00:17:48,720 –> 00:17:49,840
کلاس کاراکتر خود استفاده می شود،
576
00:17:49,840 –> 00:17:53,200
بنابراین چگونه می توانیم این کار را انجام دهیم این است که من فقط می توانم
577
00:17:53,200 –> 00:17:54,799
یک براکت باز کنم و
578
00:17:54,799 –> 00:17:55,440
براکت را
579
00:17:55,440 –> 00:17:57,120
در داخل آن ببندم. تمام
580
00:17:57,120 –> 00:17:58,720
کاراکترهایی که می خواهم مطابقت داشته
581
00:17:58,720 –> 00:18:01,440
باشند، بنابراین در این مورد من می خواهم تمام
582
00:18:01,440 –> 00:18:04,160
الفبای انگلیسی را مطابقت دهم، بنابراین فقط می گویم a تا z،
583
00:18:04,160 –> 00:18:06,640
بنابراین وقتی خط تیره z را ذکر می کنم،
584
00:18:06,640 –> 00:18:07,679
از همه چیز از
585
00:18:07,679 –> 00:18:10,559
a تا z مطابقت دارد، بنابراین همه 26 الفبای انگلیسی
586
00:18:10,559 –> 00:18:12,240
bu در اینجا من این را با حروف کوچک ذکر کردهام،
587
00:18:12,240 –> 00:18:12,640
588
00:18:12,640 –> 00:18:14,799
اما میخواهم حروف بزرگ را هم بپوشانم،
589
00:18:14,799 –> 00:18:16,720
بنابراین در این مورد من فقط
590
00:18:16,720 –> 00:18:21,280
بزرگ یک خط تیره z را ذکر کردم، بنابراین کاری که انجام میدهد
591
00:18:21,280 –> 00:18:24,080
هر کاراکتری است که در محدوده a
592
00:18:24,080 –> 00:18:26,400
تا z در حروف کوچک باشد. و a تا z در
593
00:18:26,400 –> 00:18:28,880
حروف بزرگ با هم تطبیق داده می شود،
594
00:18:28,880 –> 00:18:31,360
اما من می دانم که
595
00:18:31,360 –> 00:18:32,240
همیشه سه حرف
596
00:18:32,240 –> 00:18:35,200
در قالب این ماه وجود خواهد داشت، بنابراین
597
00:18:35,200 –> 00:18:35,840
برای ذکر
598
00:18:35,840 –> 00:18:38,559
سه حرف، یک کاری که می توانم انجام دهم این است
599
00:18:38,559 –> 00:18:40,720
که می توانم آن را سه بار تکرار کنم، بنابراین یکی
600
00:18:40,720 –> 00:18:41,120
دو
601
00:18:41,120 –> 00:18:43,280
3 اما این بهترین راه برای انجام
602
00:18:43,280 –> 00:18:44,160
آن
603
00:18:44,160 –> 00:18:48,320
نیست، بنابراین بهترین راه برای انجام آن استفاده از
604
00:18:48,320 –> 00:18:51,039
پرانتز است، بنابراین اگر به نمادهای خود
605
00:18:51,039 –> 00:18:52,799
در اینجا برگردم نماد دیگری دارم
606
00:18:52,799 –> 00:18:55,280
که نماد پرانتز است، این
607
00:18:55,280 –> 00:18:56,799
نماد اساساً برای
608
00:18:56,799 –> 00:18:58,559
نشان دادن هر زمان که شما میخواهید
609
00:18:58,559 –> 00:19:00,160
یک الگو را چند بار تکرار کنید،
610
00:19:00,160 –> 00:19:02,080
سپس میتوانید آن عدد را در داخل بریسها مشخص کنید
611
00:19:02,080 –> 00:19:03,520
، بنابراین من فقط
612
00:19:03,520 –> 00:19:05,679
بریسهایم را که به سه مورد اشاره کردم باز میکنم و
613
00:19:05,679 –> 00:19:06,640
بریسها را میبندم،
614
00:19:06,640 –> 00:19:09,200
بنابراین حالا کاری که انجام میدهد این است که سعی
615
00:19:09,200 –> 00:19:10,080
میکنیم این
616
00:19:10,080 –> 00:19:13,360
الفبا را سه بار جستجو کنیم، خوب است. بنابراین
617
00:19:13,360 –> 00:19:15,039
ما اینگونه سعی کرده ایم به m در
618
00:19:15,039 –> 00:19:17,360
ماه بعدی ما دوباره یک خط تیر اضافه می
619
00:19:17,360 –> 00:19:19,200
کنیم زیرا می دانیم که جداکننده در اینجا یک
620
00:19:19,200 –> 00:19:19,760
خط تیره است
621
00:19:19,760 –> 00:19:21,679
و سپس می دانم که چهار رقم خواهد بود
622
00:19:21,679 –> 00:19:23,520
بنابراین چهار رقمی که من فقط به
623
00:19:23,520 –> 00:19:24,160
اسلش d
624
00:19:24,160 –> 00:19:26,880
اسلش d اسلش d اسلش d اشاره کردم می توانم این کار را انجام دهم
625
00:19:26,880 –> 00:19:27,919
این نیز خوب است
626
00:19:27,919 –> 00:19:30,400
اما سپس به جای اینکه رقم را
627
00:19:30,400 –> 00:19:32,320
چهار بار تکرار کنم، می توانم در اینجا از همان
628
00:19:32,320 –> 00:19:35,039
مفهوم uh استفاده کنم که استفاده از بریس است،
629
00:19:35,039 –> 00:19:36,480
بنابراین فقط یک بار به اسلش d اشاره کردم
630
00:19:36,480 –> 00:19:39,600
و سپس 4 را در داخل پرانتزهایم می نویسم،
631
00:19:39,600 –> 00:19:40,799
بنابراین کاری که انجام می دهد این است
632
00:19:40,799 –> 00:19:42,720
که سعی می کند چهار متفاوت را مطابقت دهد.
633
00:19:42,720 –> 00:19:44,799
ارقام را می توانم
634
00:19:44,799 –> 00:19:46,559
حتی در ابتدا در اینجا اعمال کنم، بنابراین من فقط
635
00:19:46,559 –> 00:19:48,640
به اسلش اشاره کردم، این را حذف کردم و
636
00:19:48,640 –> 00:19:49,679
دو مورد را ذکر کردم،
637
00:19:49,679 –> 00:19:52,960
بنابراین اکنون آنچه اتفاق می افتد این است که الگوی من این است که
638
00:19:52,960 –> 00:19:54,720
این الگو باید بتواند
639
00:19:54,720 –> 00:19:55,200
با
640
00:19:55,200 –> 00:19:58,480
همه این تاریخ ها در اینجا مطابقت داشته باشد، بنابراین مرحله بعدی این
641
00:19:58,480 –> 00:20:00,320
است که حالا برای جستجوی این الگو در
642
00:20:00,320 –> 00:20:02,159
متن داده شده، یک
643
00:20:02,159 –> 00:20:03,919
متغیر به نام match ایجاد می
644
00:20:03,919 –> 00:20:06,480
کنم و این الگوی الگوی
645
00:20:06,480 –> 00:20:09,039
نقطه را جستجو می کنم، از متد find
646
00:20:09,039 –> 00:20:10,080
writer استفاده می
647
00:20:10,080 –> 00:20:14,640
کنم و متن خود را در اینجا وارد می کنم.
648
00:20:14,640 –> 00:20:17,360
بنابراین این جستجو خواهد شد h برای این الگو در
649
00:20:17,360 –> 00:20:18,080
این متن
650
00:20:18,080 –> 00:20:21,039
و این آیتم خوب یک مقدار تکرار کننده را برمی گرداند،
651
00:20:21,039 –> 00:20:22,159
بنابراین
652
00:20:22,159 –> 00:20:24,080
تمام مقادیر ممکن
653
00:20:24,080 –> 00:20:25,200
با این کار برگردانده می
654
00:20:25,200 –> 00:20:27,440
شود و در این متغیر ذخیره می شود و
655
00:20:27,440 –> 00:20:28,640
سپس
656
00:20:28,640 –> 00:20:30,640
مقادیر را چاپ می کنم بنابراین من می روم برای استفاده از یک
657
00:20:30,640 –> 00:20:31,760
حلقه for برای
658
00:20:31,760 –> 00:20:35,840
تطبیق در مسابقات
659
00:20:36,480 –> 00:20:39,840
و سپس من فقط یک مطابقت چاپی انجام می دهم و
660
00:20:39,840 –> 00:20:42,320
سپس از یک گروه استفاده می کنم، بنابراین من فقط
661
00:20:42,320 –> 00:20:45,679
نتیجه تطبیق شده را نمایش می دهم خوب است، بنابراین اکنون
662
00:20:45,679 –> 00:20:49,679
اگر این برنامه را اجرا
663
00:20:49,679 –> 00:20:52,000
کنم، با خطا مواجه می شوم، بسیار خوب است.
664
00:20:52,000 –> 00:20:53,520
چیزی شبیه الگو ندارم، من
665
00:20:53,520 –> 00:20:55,440
متغیری مانند الگوی تاریخ ایجاد کردم، بنابراین اجازه
666
00:20:55,440 –> 00:20:56,720
دهید نام مناسب را
667
00:20:56,720 –> 00:20:58,880
بگذارم و سپس اجازه دهید دوباره آن را اجرا کنم، بنابراین اکنون می
668
00:20:58,880 –> 00:21:00,320
توانید ببینید که
669
00:21:00,320 –> 00:21:02,880
سه تاریخ را برمی گرداند، بنابراین
670
00:21:02,880 –> 00:21:04,400
با تاریخ اول مطابقت دارد و با
671
00:21:04,400 –> 00:21:05,840
تاریخ دوم مطابقت دارد. با تاریخ سوم مطابقت دارد،
672
00:21:05,840 –> 00:21:06,480
673
00:21:06,480 –> 00:21:10,240
بنابراین اساساً ما از
674
00:21:10,240 –> 00:21:12,400
کلاس کاراکتر d اسلش استفاده کردهایم و سپس
675
00:21:12,400 –> 00:21:14,480
از پرانتزها برای تکرار
676
00:21:14,480 –> 00:21:16,720
رقمی که استفاده کردهایم استفاده کردهایم،
677
00:21:16,720 –> 00:21:18,559
کلاس کاراکتر خودمان را با استفاده از براکتهای مربع ایجاد کردهایم
678
00:21:18,559 –> 00:21:19,679
679
00:21:19,679 –> 00:21:21,600
و سپس این الگو را تکمیل
680
00:21:21,600 –> 00:21:24,159
کردیم و در نهایت ما میتوانند
681
00:21:24,159 –> 00:21:26,480
این متن را اسکن کنند و سپس
682
00:21:26,480 –> 00:21:27,360
تمام تاریخها را استخراج کنند،
683
00:21:27,360 –> 00:21:29,919
بنابراین خوب است، اما اگر اینجا را ببینید
684
00:21:29,919 –> 00:21:31,679
، سه تاریخ دیگر نیز داریم،
685
00:21:31,679 –> 00:21:33,600
اما مشکل اینجاست که این تاریخها در
686
00:21:33,600 –> 00:21:34,799
قالبهای متفاوتی هستند،
687
00:21:34,799 –> 00:21:38,240
بنابراین این تاریخ به جای آوریل
688
00:21:38,240 –> 00:21:40,320
من اینجاست. مانند صفر چهار ذکر شده است، بنابراین در اینجا
689
00:21:40,320 –> 00:21:42,159
به جای خط تیره، مانند نقطه ذکر شده است
690
00:21:42,159 –> 00:21:44,559
و در اینجا جداکننده یک اسلید است،
691
00:21:44,559 –> 00:21:47,120
اکنون اجازه دهید سعی کنیم این الگو را اصلاح
692
00:21:47,120 –> 00:21:49,679
کنیم تا با هر تاریخ احتمالی موجود در این متن مطابقت داشته باشد، بسیار
693
00:21:49,679 –> 00:21:51,039
694
00:21:51,039 –> 00:21:53,120
خوب برای انجام اولین کاری که
695
00:21:53,120 –> 00:21:54,320
باید انجام دهیم. بررسی کنید که
696
00:21:54,320 –> 00:21:56,720
ما می بینیم که دو کاراکتر اول در
697
00:21:56,720 –> 00:21:59,039
همه این تاریخ ها هنوز
698
00:21:59,039 –> 00:22:01,200
دو رقمی هستند، حتی اینجا و
699
00:22:01,200 –> 00:22:02,880
حتی اینجا، بنابراین
700
00:22:02,880 –> 00:22:05,120
این قسمت خاصی از الگوی ما به
701
00:22:05,120 –> 00:22:06,559
خوبی کار می کند، بنابراین نیازی به تغییر
702
00:22:06,559 –> 00:22:06,960
703
00:22:06,960 –> 00:22:08,799
آن چیز بعدی نداریم. یک جداکننده است در
704
00:22:08,799 –> 00:22:10,880
سه روز اول ما جداکننده را به عنوان
705
00:22:10,880 –> 00:22:13,440
یک خط تیره داشتیم و در اینجا نیز یک خط تیره داریم، اما
706
00:22:13,440 –> 00:22:14,320
در اینجا
707
00:22:14,320 –> 00:22:17,440
یک نقطه داریم و در اینجا یک اسلش داریم بنابراین
708
00:22:17,440 –> 00:22:19,520
مقادیر ممکن جداکننده عبارتند از:
709
00:22:19,520 –> 00:22:20,880
نقطه و
710
00:22:20,880 –> 00:22:22,559
خط تیره پس من من قصد دارم انجام دهم این است که من هستم
711
00:22:22,559 –> 00:22:24,320
کلاس کاراکتر خودم را ایجاد میکنم،
712
00:22:24,320 –> 00:22:26,320
بنابراین فقط یک براکت باز میکنم و
713
00:22:26,320 –> 00:22:27,520
آن را اینجا میبندم
714
00:22:27,520 –> 00:22:29,200
و سپس در اینجا میخواهم تمام
715
00:22:29,200 –> 00:22:31,039
مقادیر ممکن را که میتوانند جداکننده
716
00:22:31,039 –> 00:22:32,320
باشند، منتقل کنم تا بدانم ممکن است یک
717
00:22:32,320 –> 00:22:34,799
خط تیره باشد. همچنین یک نقطه باشد و ممکن
718
00:22:34,799 –> 00:22:35,679
است یک اسلش نیز باشد،
719
00:22:35,679 –> 00:22:38,880
بنابراین یک چیز را به خاطر بسپارید این است که من
720
00:22:38,880 –> 00:22:39,6