From: Kent J. <ke...@td...> - 2006-02-15 13:05:22
|
Simon Vans-Colina wrote: > Hi all, Why doesnt this work? (should return a 1) > > Im trying to match on multiple lines, the (?m) should tell the Java RE engine to use multiple line matching. > > Anyone? > > Cheers > Simon Vans-Colina > > >>>>import java.lang.String >>>>line=java.lang.String("line1\nline2") >>>>import java.util.regex as RE >>>>RE.Pattern.compile("(?m).*").matcher(line).matches() > > 0 You are using the wrong flag. MULTILINE (?m) affects how ^ and $ match. You need DOTALL (?s) which makes . match line endings. >>> import java >>> line=java.lang.String("line1\nline2") >>> java.util.regex.Pattern.compile("(?s).*").matcher(line).matches() 1 You can use Python's re module as well: >>> import re >>> line = "line1\nline2" >>> re.compile('(?s).*').match(line) org.python.modules.sre.MatchObject@93fd01 or just >>> re.match('(?s).*', line) org.python.modules.sre.MatchObject@3d4817 Kent |