videos/01-basics1.srt
author Christian Urban <christian.urban@kcl.ac.uk>
Wed, 21 Dec 2022 14:33:05 +0000
changeset 905 d8f870aad77d
parent 763 d1c9294fff65
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
763
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     1
1
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     2
00:00:06,710 --> 00:00:09,225
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     3
Thanks for tuning in again.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     4
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     5
2
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     6
00:00:09,225 --> 00:00:11,640
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     7
In this video, we want to specify
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     8
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     9
3
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    10
00:00:11,640 --> 00:00:14,370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    11
what problem our regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    12
expression matcher
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    13
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    14
4
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    15
00:00:14,370 --> 00:00:16,155
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    16
is actually supposed to solve.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    17
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    18
5
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    19
00:00:16,155 --> 00:00:18,900
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    20
The reason is that
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    21
we know that some of
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    22
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    23
6
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    24
00:00:18,900 --> 00:00:21,585
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    25
the existing regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    26
expression matching engines
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    27
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    28
7
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    29
00:00:21,585 --> 00:00:25,200
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    30
are not just abysmally
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    31
slow in some examples,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    32
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    33
8
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    34
00:00:25,200 --> 00:00:27,105
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    35
as you've seen in the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    36
previous video,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    37
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    38
9
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    39
00:00:27,105 --> 00:00:30,570
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    40
but also produce sometimes
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    41
incorrect results.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    42
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    43
10
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    44
00:00:30,570 --> 00:00:33,330
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    45
In order to avoid
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    46
this with our matcher,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    47
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    48
11
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    49
00:00:33,330 --> 00:00:35,325
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    50
we need to somehow explain
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    51
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    52
12
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    53
00:00:35,325 --> 00:00:39,255
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    54
precisely what is the problem
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    55
our algorithm solves.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    56
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    57
13
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    58
00:00:39,255 --> 00:00:41,935
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    59
This will require
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    60
a bit of theory, but
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    61
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    62
14
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    63
00:00:41,935 --> 00:00:45,335
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    64
I hope it is nevertheless
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    65
a bit of fun.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    66
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    67
15
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    68
00:00:45,335 --> 00:00:47,915
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    69
First, we have to specify
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    70
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    71
16
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    72
00:00:47,915 --> 00:00:50,585
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    73
what we mean by a
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    74
regular expression.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    75
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    76
17
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    77
00:00:50,585 --> 00:00:53,210
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    78
You've seen earlier some
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    79
examples. They were
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    80
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    81
18
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    82
00:00:53,210 --> 00:00:56,060
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    83
actually taken or
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    84
inspired by what
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    85
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    86
19
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    87
00:00:56,060 --> 00:00:58,850
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    88
is available in standard
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    89
regular expression matching
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    90
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    91
20
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    92
00:00:58,850 --> 00:01:02,330
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    93
engines, like star, plus and n-times.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    94
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    95
21
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    96
00:01:02,330 --> 00:01:05,690
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    97
But for many tasks,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    98
for our algorithm,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    99
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   100
22
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   101
00:01:05,690 --> 00:01:10,174
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   102
we will focus only what I call
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   103
basic regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   104
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   105
23
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   106
00:01:10,174 --> 00:01:11,840
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   107
Since I'm lazy, I will call
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   108
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   109
24
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   110
00:01:11,840 --> 00:01:13,550
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   111
these basic regular expressions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   112
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   113
25
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   114
00:01:13,550 --> 00:01:15,485
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   115
just as regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   116
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   117
26
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   118
00:01:15,485 --> 00:01:17,405
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   119
And the ones you've seen earlier
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   120
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   121
27
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   122
00:01:17,405 --> 00:01:19,400
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   123
as extended regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   124
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   125
28
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   126
00:01:19,400 --> 00:01:22,940
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   127
So the basic regulare expressions,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   128
or just regular expressions,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   129
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   130
29
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   131
00:01:22,940 --> 00:01:25,280
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   132
they will have characters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   133
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   134
30
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   135
00:01:25,280 --> 00:01:27,170
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   136
So you can match any character,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   137
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   138
31
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   139
00:01:27,170 --> 00:01:31,370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   140
a,b,c to z or 0 to 9.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   141
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   142
32
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   143
00:01:31,370 --> 00:01:35,525
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   144
Any Ascii character. 'c' here
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   145
is just a representative.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   146
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   147
33
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   148
00:01:35,525 --> 00:01:38,825
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   149
So we can match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   150
single characters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   151
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   152
34
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   153
00:01:38,825 --> 00:01:42,440
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   154
Then we can match alternatives.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   155
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   156
35
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   157
00:01:42,440 --> 00:01:44,930
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   158
That means a string
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   159
is either matched
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   160
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   161
36
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   162
00:01:44,930 --> 00:01:46,730
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   163
by the regular expression r1
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   164
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   165
37
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   166
00:01:46,730 --> 00:01:49,324
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   167
or by the regular expression r2.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   168
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   169
38
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   170
00:01:49,324 --> 00:01:52,790
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   171
And for the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   172
alternative we write +.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   173
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   174
39
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   175
00:01:52,790 --> 00:01:55,175
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   176
Then we also have sequence.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   177
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   178
40
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   179
00:01:55,175 --> 00:01:57,410
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   180
This sequence regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   181
expression essentially
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   182
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   183
41
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   184
00:01:57,410 --> 00:01:59,915
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   185
says that a string needs to be matched
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   186
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   187
42
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   188
00:01:59,915 --> 00:02:02,210
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   189
the first part by
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   190
the regular expression r1
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   191
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   192
43
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   193
00:02:02,210 --> 00:02:06,275
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   194
and then the second
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   195
part by the r2.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   196
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   197
44
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   198
00:02:06,275 --> 00:02:10,190
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   199
And then we have also the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   200
star regular expression,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   201
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   202
45
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   203
00:02:10,190 --> 00:02:12,980
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   204
which says the regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   205
expression needs to match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   206
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   207
46
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   208
00:02:12,980 --> 00:02:16,520
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   209
the string with zero
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   210
or more copies.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   211
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   212
47
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   213
00:02:16,520 --> 00:02:18,140
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   214
And then we also have some
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   215
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   216
48
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   217
00:02:18,140 --> 00:02:20,060
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   218
slightly strange
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   219
regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   220
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   221
49
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   222
00:02:20,060 --> 00:02:22,505
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   223
We have the regular expression 1,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   224
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   225
50
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   226
00:02:22,505 --> 00:02:25,910
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   227
which can only match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   228
the empty string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   229
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   230
51
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   231
00:02:25,910 --> 00:02:29,075
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   232
I'm using here the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   233
notation 1 for that
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   234
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   235
52
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   236
00:02:29,075 --> 00:02:31,340
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   237
and in my writing I will always
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   238
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   239
53
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   240
00:02:31,340 --> 00:02:33,440
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   241
make sure that for the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   242
regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   243
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   244
54
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   245
00:02:33,440 --> 00:02:35,765
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   246
I will write the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   247
1 in a bold font.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   248
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   249
55
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   250
00:02:35,765 --> 00:02:38,510
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   251
So whenever you see
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   252
a 1 in bold font,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   253
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   254
56
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   255
00:02:38,510 --> 00:02:40,395
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   256
this is not the 1, but
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   257
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   258
57
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   259
00:02:40,395 --> 00:02:44,300
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   260
the regular expression which
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   261
can match the empty string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   262
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   263
58
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   264
00:02:44,300 --> 00:02:48,050
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   265
And we also have the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   266
regular expression 0,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   267
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   268
59
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   269
00:02:48,050 --> 00:02:50,315
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   270
which cannot match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   271
anything at all.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   272
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   273
60
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   274
00:02:50,315 --> 00:02:51,695
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   275
You might think, well,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   276
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   277
61
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   278
00:02:51,695 --> 00:02:54,635
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   279
that's not much use if it cannot
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   280
match anything at all,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   281
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   282
62
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   283
00:02:54,635 --> 00:02:58,130
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   284
but you will see why that
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   285
one is important later on.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   286
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   287
63
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   288
00:02:58,130 --> 00:03:00,785
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   289
So our basic regular expressions,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   290
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   291
64
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   292
00:03:00,785 --> 00:03:02,375
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   293
they will be 0,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   294
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   295
65
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   296
00:03:02,375 --> 00:03:08,390
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   297
1, characters, alternatives,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   298
sequences and stars.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   299
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   300
66
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   301
00:03:08,390 --> 00:03:12,170
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   302
And these are all the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   303
basic regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   304
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   305
67
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   306
00:03:12,170 --> 00:03:16,280
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   307
If this definition is a
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   308
bit too abstract for you,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   309
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   310
68
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   311
00:03:16,280 --> 00:03:18,560
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   312
we can also look at
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   313
the concrete code,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   314
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   315
69
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   316
00:03:18,560 --> 00:03:23,060
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   317
how that would pan out when
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   318
actually writing some Scala.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   319
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   320
70
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   321
00:03:23,060 --> 00:03:28,040
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   322
I promised you, I show
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   323
you always my code in Scala.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   324
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   325
71
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   326
00:03:28,040 --> 00:03:29,480
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   327
So here you would have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   328
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   329
72
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   330
00:03:29,480 --> 00:03:32,885
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   331
first an abstract class
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   332
for regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   333
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   334
73
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   335
00:03:32,885 --> 00:03:37,580
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   336
Then you have one regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   337
expression for 0, 
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   338
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   339
74
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   340
00:03:37,580 --> 00:03:41,540
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   341
one regular expression for 1, 
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   342
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   343
75
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   344
00:03:41,540 --> 00:03:42,875
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   345
one regular expression, which
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   346
takes an argument,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   347
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   348
76
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   349
00:03:42,875 --> 00:03:45,050
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   350
the character you want to match,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   351
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   352
77
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   353
00:03:45,050 --> 00:03:47,915
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   354
the characters a,b, c and so on.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   355
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   356
78
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   357
00:03:47,915 --> 00:03:50,945
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   358
Then we have an alternative
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   359
regular expression,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   360
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   361
79
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   362
00:03:50,945 --> 00:03:53,480
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   363
which takes the first
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   364
alternative and
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   365
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   366
80
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   367
00:03:53,480 --> 00:03:56,435
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   368
the second alternative
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   369
as arguments.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   371
81
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   372
00:03:56,435 --> 00:03:59,690
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   373
And we have a sequence
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   374
regular expression. Again,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   375
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   376
82
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   377
00:03:59,690 --> 00:04:01,850
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   378
which takes the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   379
first component and
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   380
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   381
83
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   382
00:04:01,850 --> 00:04:04,730
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   383
the second component
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   384
as two arguments.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   385
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   386
84
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   387
00:04:04,730 --> 00:04:07,249
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   388
And we have the star
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   389
regular expression,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   390
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   391
85
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   392
00:04:07,249 --> 00:04:10,880
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   393
which just take one regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   394
expression as argument.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   395
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   396
86
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   397
00:04:10,880 --> 00:04:16,115
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   398
And all these reg expressions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   399
extend our abstract class.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   400
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   401
87
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   402
00:04:16,115 --> 00:04:20,300
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   403
For whatever I do in
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   404
this module here I have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   405
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   406
88
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   407
00:04:20,300 --> 00:04:23,300
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   408
the convention that all
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   409
the regular expressions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   410
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   411
89
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   412
00:04:23,300 --> 00:04:25,550
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   413
are written with capital letters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   414
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   415
90
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   416
00:04:25,550 --> 00:04:26,885
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   417
As you can see that here,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   418
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   419
91
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   420
00:04:26,885 --> 00:04:31,685
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   421
O, 1,  character, these will be
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   422
always regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   423
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   424
92
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   425
00:04:31,685 --> 00:04:34,370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   426
They have all capital letters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   427
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   428
93
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   429
00:04:34,370 --> 00:04:36,484
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   430
Let's for a moment,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   431
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   432
94
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   433
00:04:36,484 --> 00:04:38,720
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   434
play around with this definition.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   435
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   436
95
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   437
00:04:38,720 --> 00:04:41,945
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   438
I'm using here the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   439
Ammonite REPL.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   440
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   441
96
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   442
00:04:41,945 --> 00:04:46,950
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   443
And I can evaluate
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   444
this definition.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   445
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   446
97
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   447
00:04:53,430 --> 00:04:55,810
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   448
And now I can start to
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   449
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   450
98
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   451
00:04:55,810 --> 00:04:58,570
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   452
define particular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   453
regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   454
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   455
99
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   456
00:04:58,570 --> 00:05:00,340
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   457
For example, if I need
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   458
a regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   459
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   460
100
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   461
00:05:00,340 --> 00:05:02,860
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   462
which can recognise
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   463
the character a,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   464
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   465
101
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   466
00:05:02,860 --> 00:05:06,025
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   467
then I would write
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   468
something like this.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   469
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   470
102
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   471
00:05:06,025 --> 00:05:08,710
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   472
So this regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   473
takes an argument,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   474
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   475
103
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   476
00:05:08,710 --> 00:05:13,615
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   477
the character 'a'  to specify
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   478
which character to match.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   479
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   480
104
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   481
00:05:13,615 --> 00:05:16,945
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   482
We do this obviously also with 'b'.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   483
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   484
105
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   485
00:05:16,945 --> 00:05:19,405
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   486
And I can do that with
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   487
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   488
106
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   489
00:05:19,405 --> 00:05:22,975
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   490
'c'. So now we have three
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   491
regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   492
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   493
107
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   494
00:05:22,975 --> 00:05:25,570
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   495
If you look very carefully
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   496
at this definition,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   497
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   498
108
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   499
00:05:25,570 --> 00:05:27,070
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   500
you can actually see
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   501
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   502
109
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   503
00:05:27,070 --> 00:05:29,940
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   504
these regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   505
expressions are trees.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   506
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   507
110
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   508
00:05:29,940 --> 00:05:33,365
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   509
So no matter what we
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   510
write down on paper,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   511
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   512
111
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   513
00:05:33,365 --> 00:05:36,755
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   514
they are behind the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   515
scenes always trees.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   516
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   517
112
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   518
00:05:36,755 --> 00:05:40,010
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   519
And you can see that
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   520
actually in this definition.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   521
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   522
113
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   523
00:05:40,010 --> 00:05:44,330
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   524
If you define two regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   525
expressions r1 and r2.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   526
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   527
114
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   528
00:05:44,330 --> 00:05:49,310
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   529
They are essentially
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   530
the alternative of a, b and c.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   531
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   532
115
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   533
00:05:49,310 --> 00:05:52,760
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   534
Then this regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   535
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   536
116
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   537
00:05:52,760 --> 00:05:54,710
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   538
can match either the character
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   539
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   540
117
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   541
00:05:54,710 --> 00:05:57,980
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   542
a or the character b
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   543
or the character c.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   544
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   545
118
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   546
00:05:57,980 --> 00:06:01,640
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   547
And the same for the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   548
regular expression r2.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   549
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   550
119
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   551
00:06:01,640 --> 00:06:03,875
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   552
So let me just evaluate that.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   553
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   554
120
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   555
00:06:03,875 --> 00:06:05,690
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   556
And even though these are
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   557
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   558
121
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   559
00:06:05,690 --> 00:06:07,175
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   560
two regular expressions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   561
which can match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   562
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   563
122
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   564
00:06:07,175 --> 00:06:11,750
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   565
exactly the same things,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   566
they a different trees.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   567
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   568
123
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   569
00:06:11,750 --> 00:06:14,195
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   570
So if I ask Scala,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   571
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   572
124
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   573
00:06:14,195 --> 00:06:16,460
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   574
are these trees different?
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   575
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   576
125
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   577
00:06:16,460 --> 00:06:19,250
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   578
Or ask if they're
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   579
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   580
126
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   581
00:06:19,250 --> 00:06:21,865
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   582
the same, then Scala will say No,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   583
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   584
127
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   585
00:06:21,865 --> 00:06:25,440
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   586
they actually different trees.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   587
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   588
128
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   589
00:06:25,450 --> 00:06:28,459
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   590
Let's come back to
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   591
this definition.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   592
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   593
129
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   594
00:06:28,459 --> 00:06:31,760
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   595
If we want to write down
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   596
regular expressions on paper,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   597
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   598
130
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   599
00:06:31,760 --> 00:06:33,620
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   600
then we want to be sloppy as
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   601
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   602
131
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   603
00:06:33,620 --> 00:06:35,750
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   604
mathematicians rather than as
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   605
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   606
132
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   607
00:06:35,750 --> 00:06:37,745
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   608
precise as computer scientists.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   609
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   610
133
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   611
00:06:37,745 --> 00:06:40,490
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   612
So when we want to write down
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   613
a regular expression which can
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   614
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   615
134
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   616
00:06:40,490 --> 00:06:43,955
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   617
either match the character
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   618
a or the character b,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   619
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   620
135
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   621
00:06:43,955 --> 00:06:49,130
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   622
then we would write down
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   623
something like this, a plus b.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   624
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   625
136
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   626
00:06:49,130 --> 00:06:51,170
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   627
And if you want to have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   628
the regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   629
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   630
137
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   631
00:06:51,170 --> 00:06:52,625
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   632
which can either match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   633
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   634
138
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   635
00:06:52,625 --> 00:06:55,925
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   636
the character a or b or c,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   637
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   638
139
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   639
00:06:55,925 --> 00:06:58,340
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   640
we will write
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   641
something like this.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   642
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   643
140
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   644
00:06:58,340 --> 00:07:01,370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   645
But of course behind the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   646
scenes, these are trees.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   647
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   648
141
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   649
00:07:01,370 --> 00:07:04,460
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   650
So we should have written
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   651
them with parentheses.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   652
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   653
142
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   654
00:07:04,460 --> 00:07:06,440
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   655
And you can see
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   656
actually, there are two
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   657
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   658
143
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   659
00:07:06,440 --> 00:07:08,990
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   660
regular expressions I
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   661
could have written down.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   662
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   663
144
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   664
00:07:08,990 --> 00:07:11,270
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   665
They're different.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   666
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   667
145
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   668
00:07:11,270 --> 00:07:12,710
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   669
Just by convention,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   670
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   671
146
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   672
00:07:12,710 --> 00:07:15,575
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   673
we on't write these parentheses.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   674
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   675
147
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   676
00:07:15,575 --> 00:07:18,740
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   677
And that is similar with sequences.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   678
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   679
148
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   680
00:07:18,740 --> 00:07:20,000
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   681
If I want to write down
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   682
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   683
149
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   684
00:07:20,000 --> 00:07:22,955
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   685
the regular expression which
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   686
can match first an 'a',
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   687
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   688
150
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   689
00:07:22,955 --> 00:07:25,010
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   690
then a 'b', and then a 'c',
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   691
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   692
151
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   693
00:07:25,010 --> 00:07:28,160
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   694
then I would write down
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   695
something like this.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   696
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   697
152
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   698
00:07:28,160 --> 00:07:32,120
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   699
Just, there are again
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   700
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   701
153
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   702
00:07:32,120 --> 00:07:35,735
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   703
two regular expressions I
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   704
could have written down.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   705
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   706
154
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   707
00:07:35,735 --> 00:07:38,480
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   708
Again by convention we don't
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   709
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   710
155
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   711
00:07:38,480 --> 00:07:40,670
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   712
write these parentheses though.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   713
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   714
156
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   715
00:07:40,670 --> 00:07:42,350
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   716
However, sometimes we have to be
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   717
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   718
157
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   719
00:07:42,350 --> 00:07:43,940
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   720
very careful with parentheses,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   721
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   722
158
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   723
00:07:43,940 --> 00:07:47,195
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   724
especially with star. 
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   725
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   726
159
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   727
00:07:47,195 --> 00:07:50,525
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   728
Because this regular expression
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   729
is definitely not
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   730
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   731
160
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   732
00:07:50,525 --> 00:07:54,900
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   733
the same as this regular expression.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   734
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   735
161
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   736
00:07:56,100 --> 00:07:59,410
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   737
The first one here can match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   738
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   739
162
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   740
00:07:59,410 --> 00:08:03,610
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   741
any strings containing a or b's.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   742
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   743
163
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   744
00:08:03,610 --> 00:08:05,860
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   745
While this regular expression can
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   746
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   747
164
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   748
00:08:05,860 --> 00:08:07,945
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   749
only match the single character
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   750
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   751
165
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   752
00:08:07,945 --> 00:08:13,300
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   753
a or any string
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   754
containing only b's.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   755
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   756
166
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   757
00:08:13,300 --> 00:08:15,265
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   758
So to make the difference clear,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   759
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   760
167
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   761
00:08:15,265 --> 00:08:20,065
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   762
in this example, we would have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   763
to use the parentheses.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   764
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   765
168
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   766
00:08:20,065 --> 00:08:23,140
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   767
There's one more issue
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   768
with this definition.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   769
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   770
169
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   771
00:08:23,140 --> 00:08:26,635
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   772
Why do we focus on these
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   773
basic regular expressions?
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   774
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   775
170
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   776
00:08:26,635 --> 00:08:28,660
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   777
Why don't we also include
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   778
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   779
171
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   780
00:08:28,660 --> 00:08:31,285
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   781
the ones from the
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   782
extended regular expressions.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   783
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   784
172
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   785
00:08:31,285 --> 00:08:33,055
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   786
The answers very easy.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   787
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   788
173
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   789
00:08:33,055 --> 00:08:35,680
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   790
These basic regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   791
expressions can be used
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   792
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   793
174
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   794
00:08:35,680 --> 00:08:38,370
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   795
to represent also
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   796
the extended ones.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   797
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   798
175
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   799
00:08:38,370 --> 00:08:40,220
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   800
Let me give you some examples.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   801
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   802
176
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   803
00:08:40,220 --> 00:08:44,225
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   804
If I have a regular
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   805
expression r+, for example,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   806
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   807
177
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   808
00:08:44,225 --> 00:08:46,280
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   809
then the meaning
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   810
was I have to use
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   811
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   812
178
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   813
00:08:46,280 --> 00:08:49,115
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   814
at least one or more copies
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   815
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   816
179
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   817
00:08:49,115 --> 00:08:51,200
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   818
of this r to
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   819
match a string. 
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   820
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   821
180
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   822
00:08:51,200 --> 00:08:53,810
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   823
Well, one or more copies
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   824
can be represented by
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   825
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   826
181
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   827
00:08:53,810 --> 00:08:58,385
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   828
the basic ones as just
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   829
r followed by r*.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   830
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   831
182
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   832
00:08:58,385 --> 00:09:01,760
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   833
Meaning I have to use one
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   834
copy of r, followed by
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   835
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   836
183
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   837
00:09:01,760 --> 00:09:05,150
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   838
0 or more copies of r.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   839
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   840
184
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   841
00:09:05,150 --> 00:09:07,895
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   842
Similarly, if I have the optional
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   843
regular expression,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   844
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   845
185
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   846
00:09:07,895 --> 00:09:10,715
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   847
which is supposed to
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   848
match a string
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   849
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   850
186
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   851
00:09:10,715 --> 00:09:13,865
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   852
by using r, or match
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   853
the empty string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   854
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   855
187
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   856
00:09:13,865 --> 00:09:19,295
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   857
Then this can be obviously
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   858
defined as r + 1.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   859
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   860
188
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   861
00:09:19,295 --> 00:09:23,945
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   862
So here is the bold
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   863
regular expression 1,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   864
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   865
189
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   866
00:09:23,945 --> 00:09:26,180
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   867
which means it either can
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   868
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   869
190
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   870
00:09:26,180 --> 00:09:28,205
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   871
recognize whatever
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   872
r can recognize,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   873
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   874
191
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   875
00:09:28,205 --> 00:09:30,470
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   876
or it can recognize
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   877
the empty string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   878
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   879
192
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   880
00:09:30,470 --> 00:09:35,150
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   881
And if I have ranges, like a
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   882
to z,  then I can define
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   883
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   884
193
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   885
00:09:35,150 --> 00:09:41,135
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   886
that as a + b + c + ...
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   887
and so on until z.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   888
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   889
194
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   890
00:09:41,135 --> 00:09:45,920
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   891
Maybe this definition is not
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   892
good in terms of runtime,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   893
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   894
195
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   895
00:09:45,920 --> 00:09:47,960
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   896
but in terms of just being able
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   897
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   898
196
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   899
00:09:47,960 --> 00:09:50,780
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   900
to recognize strings
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   901
or match strings,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   902
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   903
197
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   904
00:09:50,780 --> 00:09:54,680
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   905
the basic regular expressions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   906
will be just sufficient.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   907
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   908
198
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   909
00:09:54,680 --> 00:09:56,690
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   910
Unfortunately, we
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   911
also need to have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   912
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   913
199
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   914
00:09:56,690 --> 00:09:58,850
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   915
a quick chat about strings.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   916
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   917
200
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   918
00:09:58,850 --> 00:10:02,255
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   919
In Scala, it's crystal
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   920
clear what a string is.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   921
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   922
201
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   923
00:10:02,255 --> 00:10:05,480
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   924
There's a separate datatype
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   925
which is called string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   926
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   927
202
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   928
00:10:05,480 --> 00:10:07,895
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   929
So here, for example,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   930
is a string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   931
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   932
203
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   933
00:10:07,895 --> 00:10:09,200
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   934
And as you can see,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   935
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   936
204
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   937
00:10:09,200 --> 00:10:11,105
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   938
it is of the type string.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   939
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   940
205
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   941
00:10:11,105 --> 00:10:13,985
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   942
And the empty string
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   943
will be just that.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   944
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   945
206
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   946
00:10:13,985 --> 00:10:16,160
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   947
However, when we write things down on
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   948
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   949
207
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   950
00:10:16,160 --> 00:10:18,320
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   951
paper and think
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   952
about our algorithm,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   953
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   954
208
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   955
00:10:18,320 --> 00:10:22,790
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   956
we want to think of strings
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   957
as lists of characters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   958
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   959
209
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   960
00:10:22,790 --> 00:10:26,070
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   961
So more something like this.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   962
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   963
210
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   964
00:10:27,070 --> 00:10:31,745
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   965
You can see here, this is actually
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   966
a list of characters.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   967
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   968
211
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   969
00:10:31,745 --> 00:10:35,150
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   970
And the two operations
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   971
we need are taking
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   972
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   973
212
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   974
00:10:35,150 --> 00:10:37,280
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   975
the head of this list and
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   976
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   977
213
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   978
00:10:37,280 --> 00:10:39,770
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   979
the rest of the list
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   980
or tail of the list.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   981
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   982
214
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   983
00:10:39,770 --> 00:10:41,720
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   984
That's why we want
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   985
to regard them as
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   986
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   987
215
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   988
00:10:41,720 --> 00:10:45,260
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   989
lists rather than strings.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   990
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   991
216
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   992
00:10:45,260 --> 00:10:48,200
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   993
So if I'm using a
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   994
string like this,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   995
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   996
217
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   997
00:10:48,200 --> 00:10:51,935
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   998
then on paper I always will
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   999
write something like that.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1000
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1001
218
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1002
00:10:51,935 --> 00:10:54,575
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1003
Or since I'm lazy, just that.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1004
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1005
219
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1006
00:10:54,575 --> 00:10:56,675
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1007
And for the empty string,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1008
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1009
220
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1010
00:10:56,675 --> 00:10:59,210
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1011
I will write either
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1012
the empty list, with
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1013
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1014
221
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1015
00:10:59,210 --> 00:11:03,920
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1016
two brackets or,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1017
being lazy, just that.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1018
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1019
222
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1020
00:11:03,920 --> 00:11:06,620
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1021
Actually there is one
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1022
more operation we need on
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1023
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1024
223
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1025
00:11:06,620 --> 00:11:09,410
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1026
strings and that
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1027
is concatenation.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1028
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1029
224
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1030
00:11:09,410 --> 00:11:11,255
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1031
If you have a string s1,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1032
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1033
225
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1034
00:11:11,255 --> 00:11:14,510
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1035
string s2, and put an
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1036
at symbol in between,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1037
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1038
226
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1039
00:11:14,510 --> 00:11:18,050
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1040
that means we want to
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1041
concatenate both strings.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1042
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1043
227
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1044
00:11:18,050 --> 00:11:22,625
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1045
So foo concatenated with
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1046
bar, would be foobar.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1047
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1048
228
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1049
00:11:22,625 --> 00:11:25,085
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1050
And any string concatenated with
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1051
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1052
229
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1053
00:11:25,085 --> 00:11:27,950
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1054
the empty string
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1055
is left untouched.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1056
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1057
230
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1058
00:11:27,950 --> 00:11:31,310
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1059
So baz concatenated with
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1060
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1061
231
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1062
00:11:31,310 --> 00:11:33,545
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1063
the empty string, is just baz.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1064
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1065
232
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1066
00:11:33,545 --> 00:11:37,295
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1067
So that's like if we have
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1068
strings as lists of characters,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1069
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1070
233
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1071
00:11:37,295 --> 00:11:39,755
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1072
that will be just list append.
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1073
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1074
234
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1075
00:11:39,755 --> 00:11:41,480
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1076
In the next video,
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1077
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1078
235
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1079
00:11:41,480 --> 00:11:43,160
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1080
we will use these definitions
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1081
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1082
236
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1083
00:11:43,160 --> 00:11:45,050
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1084
and introduce the notion of what
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1085
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1086
237
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1087
00:11:45,050 --> 00:11:46,850
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1088
a language is and
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1089
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1090
238
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1091
00:11:46,850 --> 00:11:49,920
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1092
what the meaning of a
d1c9294fff65 updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1093
regular expression is.