diff -r 2f9fe225ecc8 -r e57d3d92b856 handouts/ho01.tex --- a/handouts/ho01.tex Tue Jan 05 01:46:41 2016 +0000 +++ b/handouts/ho01.tex Tue Jan 12 02:18:58 2016 +0000 @@ -7,6 +7,7 @@ %%http://regexcrossword.com/challenges/cities/puzzles/1 \begin{document} +\fnote{\copyright{} Christian Urban, 2014, 2015} \section*{Handout 1} @@ -16,15 +17,16 @@ Knuth-Morris-Pratt algorithm, which is currently the most efficient general string search algorithm. But often we do \emph{not} just look for a particular string, but for string -patterns. For example in program code we need to identify -what are the keywords, what are the identifiers etc. A pattern -for identifiers could be stated as: they start with a letter, +patterns. For example in program code we need to identify what +are the keywords, what are the identifiers etc. A pattern for +identifiers could be stated as: they start with a letter, followed by zero or more letters, numbers and underscores. Also often we face the problem that we are given a string (for example some user input) and want to know whether it matches a -particular pattern. In this way we can exclude user input that -would otherwise have nasty effects on our program (crashing it -or making it go into an infinite loop, if not worse). +particular pattern. In this way we can, for example, exclude +user input that would otherwise have nasty effects on our +program (crashing it or making it go into an infinite loop, if +not worse). \defn{Regular expressions} help with conveniently specifying such patterns. The idea behind regular expressions is that