more patterns copyright © software carpentry 2010 this work is licensed under the creative commons...
TRANSCRIPT
![Page 1: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/1.jpg)
More Patterns
Copyright © Software Carpentry 2010
This work is licensed under the Creative Commons Attribution License
See http://software-carpentry.org/license.html for more information.
Regular Expressions
![Page 2: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/2.jpg)
Regular Expressions More Patterns
Notebook #1
Site Date Evil (millivaders)---- ---- ------------------Baker 1 2009-11-17 1223.0Baker 1 2010-06-24 1122.7Baker 2 2009-07-24 2819.0Baker 2 2010-08-25 2971.6Baker 1 2011-01-05 1410.0Baker 2 2010-09-04 4671.6 ⋮ ⋮ ⋮
![Page 3: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/3.jpg)
Regular Expressions More Patterns
Notebook #2
Site/Date/EvilDavison/May 22, 2010/1721.3Davison/May 23, 2010/1724.7Pertwee/May 24, 2010/2103.8Davison/June 19, 2010/1731.9Davison/July 6, 2010/2010.7Pertwee/Aug 4, 2010/1731.3Pertwee/Sept 3, 2010/4981.0 ⋮ ⋮ ⋮
![Page 4: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/4.jpg)
Regular Expressions More Patterns
# Get date from record.def get_date(record): '''Return (Y, M, D) as strings, or None.'''
# 2010-01-01 m = re.search('([0-9]{4})-([0-9]{2})-([0-9]{2})', record) if m: return m.group(1), m.group(2), m.group(3)
# Jan 1, 2010 (comma optional, day may be 1 or 2 digits) m = re.search('/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/', record) if m: return m.group(3), m.group(1), m.group(2)
return None
![Page 5: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/5.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 6: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/6.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 7: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/7.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 8: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/8.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 9: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/9.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 10: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/10.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 11: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/11.jpg)
Regular Expressions More Patterns
# Get all fields from record.def get_fields(record): '''Return (Y, M, D, site, reading) or None.'''
patterns = ( ('(.+)\t([0-9]{4})-([0-9]{2})-([0-9]{2})\t(.+)', 2, 3, 4, 1, 5), ('(.+)/([A-Z][a-z]+) ([0-9]{1,2}),? ([0-9]{4})/(.+)', 4, 2, 3, 1, 5) ) for p, y, m, d, s, r in patterns: m = re.search(p, record) if m: return m.group(y), m.group(m), m.group(d), m.group(s), m.group(r)
return None
![Page 12: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/12.jpg)
Regular Expressions More Patterns
Notebook #3
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 13: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/13.jpg)
Regular Expressions More Patterns
Notebook #3
spaces
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 14: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/14.jpg)
Regular Expressions More Patterns
Notebook #3
But how to match parentheses?
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 15: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/15.jpg)
Regular Expressions More Patterns
Notebook #3
But how to match parentheses?
The '()' in '(.+)' don't actually match
characters
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 16: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/16.jpg)
Regular Expressions More Patterns
Put '\(' and '\)' in regular expression to match
parenthesis characters '(' and ')'
![Page 17: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/17.jpg)
Regular Expressions More Patterns
Put '\(' and '\)' in regular expression to match
parenthesis characters '(' and ')'
Another escape sequence, like '\t' in a string for tab
![Page 18: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/18.jpg)
Regular Expressions More Patterns
Put '\(' and '\)' in regular expression to match
parenthesis characters '(' and ')'
Another escape sequence, like '\t' in a string for tab
In order to get the '\' in the string, must write '\\'
![Page 19: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/19.jpg)
Regular Expressions More Patterns
Put '\(' and '\)' in regular expression to match
parenthesis characters '(' and ')'
Another escape sequence, like '\t' in a string for tab
In order to get the '\' in the string, must write '\\'
So the strings representing the regular expressions
that match parentheses are '\\(' and '\\)'
![Page 20: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/20.jpg)
Regular Expressions More Patterns
# find '()' in textm = re.search('\\(\\)',
text) ⋮ ⋮ ⋮ ⋮
program text
![Page 21: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/21.jpg)
Regular Expressions More Patterns
# find '()' in textm = re.search('\\(\\)',
text) ⋮ ⋮ ⋮ ⋮
\ ( \ )
program text
Python string
![Page 22: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/22.jpg)
Regular Expressions More Patterns
# find '()' in textm = re.search('\\(\\)',
text) ⋮ ⋮ ⋮ ⋮
\ ( \ )
( )
program text
Python string
finite state
machine
![Page 23: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/23.jpg)
Regular Expressions More Patterns
Notebook #3
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 24: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/24.jpg)
Regular Expressions More Patterns
Notebook #3
'([A-Z][a-z]+) ([0-9]{1,2}) ([0-9]{4}) \\((.
+)\\) (.+)'
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 25: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/25.jpg)
Regular Expressions More Patterns
Notebook #3
'([A-Z][a-z]+ [0-9]{1,2} [0-9]{4} \\((.+)\\) (.
+)'
match actual '('
and ')'
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 26: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/26.jpg)
Regular Expressions More Patterns
Notebook #3
'([A-Z][a-z]+ [0-9]{1,2} [0-9]{4} \\((.+)\\) (.
+)'
match actual '('
and ')'
create a
group
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 27: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/27.jpg)
Regular Expressions More Patterns
Notebook #3
'([A-Z][a-z]+ [0-9]{1,2} [0-9]{4} \\((.+)\\) (.
+)'
match actual '('
and ')'
create a
group
save the
match
Date Site Evil(mvad)May 29 2010 (Hartnell) 1029.3May 30 2010 (Hartnell) 1119.2June 1 2010 (Hartnell) 1319.4May 29 2010 (Troughton) 1419.3May 30 2010 (Troughton) 1420.0June 1 2010 (Troughton) 1419.8 ⋮ ⋮ ⋮
![Page 28: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/28.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
![Page 29: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/29.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
\d digits '0', '4', '9'
![Page 30: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/30.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
\d digits '0', '4', '9'
\s white space ' ', '\t', '\r', '\n'
![Page 31: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/31.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
\d digits '0', '4', '9'
\s white space ' ', '\t', '\r', '\n'
\w word characters '[A-Za-z0-9_]'
![Page 32: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/32.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
\d digits '0', '4', '9'
\s white space ' ', '\t', '\r', '\n'
\w word characters '[A-Za-z0-9_]'
actually the set of characters that can
appear in a variable name in C (or Python)
![Page 33: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/33.jpg)
Regular Expressions More Patterns
Some character sets come up frequently enough
to be given abbreviations
\d digits '0', '4', '9'
\s white space ' ', '\t', '\r', '\n'
\w word characters '[A-Za-z0-9_]'
actually the set of characters that can
appear in a variable name in C (or Python)
Need to double up the '\' when writing as string
![Page 34: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/34.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
![Page 35: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/35.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
![Page 36: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/36.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
that's an upper-case 'S'
![Page 37: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/37.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
that's an upper-case 'S'
\W non-word characters
![Page 38: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/38.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
that's an upper-case 'S'
\W non-word characters
that's an upper-case 'W'
![Page 39: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/39.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
that's an upper-case 'S'
\W non-word characters
that's an upper-case 'W'
Very easy to mis-type
![Page 40: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/40.jpg)
Regular Expressions More Patterns
And now for an example of really bad design
\S non-space characters
that's an upper-case 'S'
\W non-word characters
that's an upper-case 'W'
Very easy to mis-type
Even easier to mis-read
![Page 41: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/41.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
![Page 42: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/42.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
![Page 43: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/43.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
re.search('^mask', 'mask size') => match
![Page 44: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/44.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
re.search('^mask', 'mask size') => match
re.search('^mask', 'unmask') => None
![Page 45: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/45.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
re.search('^mask', 'mask size') => match
re.search('^mask', 'unmask') => None
$ At the end of a pattern, matches the
end of the input text
![Page 46: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/46.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
re.search('^mask', 'mask size') => match
re.search('^mask', 'unmask') => None
$ At the end of a pattern, matches the
end of the input text
re.search('temp$', 'high-temp') => match
![Page 47: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/47.jpg)
Regular Expressions More Patterns
Can also match things that aren't actual characters
^ At the start of a pattern, matches the
beginning of the input text
re.search('^mask', 'mask size') => match
re.search('^mask', 'unmask') => None
$ At the end of a pattern, matches the
end of the input text
re.search('temp$', 'high-temp') => match
re.search('temp$', 'temperature') => None
![Page 48: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/48.jpg)
Regular Expressions More Patterns
\b Boundary between word and non-word
characters
![Page 49: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/49.jpg)
Regular Expressions More Patterns
\b Boundary between word and non-word
characters
re.search('\\bage\\b', 'the age of') => match
![Page 50: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/50.jpg)
Regular Expressions More Patterns
\b Boundary between word and non-word
characters
re.search('\\bage\\b', 'the age of') => match
re.search('\\bage\\b', 'phage') => None
![Page 51: More Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See](https://reader035.vdocuments.net/reader035/viewer/2022070413/5697bf9a1a28abf838c92377/html5/thumbnails/51.jpg)
June 2010
created by
Greg Wilson
Copyright © Software Carpentry 2010
This work is licensed under the Creative Commons Attribution License
See http://software-carpentry.org/license.html for more information.