# File regex2.pl # Regular expressions(regex). String =~ /Pattern/ same as String =~ m/Pattern/ # Match (m) the String with Pattern # Last succesful match. System variables take values: # $` = first part $& = fit $' = last part # position where match is found length($`) -how many chars are before gives position # C:\myPerl>perl regex2.pl # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?. # Pattern=. # before= fit=C after=harles Darwin wrote XXX in 1859. position=0 # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?\. # Pattern=\. # before=Charles Darwin wrote XXX in 1859 fit=. after= position=34 # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?\s\s # Pattern=\s\s # before=Charles fit= after= Darwin wrote XXX in 1859. position=7 # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?[1-9] # Pattern=[1-9] # before=Charles Darwin wrote XXX in fit=1 after=859. position=30 # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?Dar # Pattern=Dar # before=Charles fit=Dar after=win wrote XXX in 1859. position=10 # Charles Darwin wrote XXX in 1859. # Input regular expression (type ENTER for quit)?q # Bye ###################### $regex = ''; while( true ) { # while regex is not q (quit) $seq = 'Charles Darwin wrote XXX in 1859.'; #there are 3 spaces between Charles and Darwin print "\n$seq \nInput regular expression (type ENTER for quit)?"; $regex = ; chop($regex); if ($regex eq 'q' or $regex eq 'Q') { last}; # q means quit last=break if ( $seq =~ m/$regex/ ) { print "\nPattern=$regex \n before=$` fit=$& after=$' position=", length($`); } else { print "\n No match! $regex in $seq" ; } } print "Bye"; exit;