day⑤:re深入

Regular Expression Modifiers: Option Flags

Regular expression literals may include an optional modifier to control various aspects of matching. The modifiers are specified as an optional flag. You can provide multiple modifiers using exclusive OR (|), as shown previously and may be represented by one of these −

ModifierDescription
re.IPerforms case-insensitive matching.
re.LInterprets words according to the current locale. This interpretation affects the alphabetic group (w and W), as well as word boundary behavior ( and B).
re.MMakes $ match the end of a line (not just the end of the string) and makes ^ match the start of any line (not just the start of the string).
re.SMakes a period (dot) match any character, including a newline.
re.UInterprets letters according to the Unicode character set. This flag affects the behavior of w, W, , B.
re.XPermits "cuter" regular expression syntax. It ignores whitespace (except inside a set [] or when escaped by a backslash) and treats unescaped # as a comment marker.

①.re.I #忽略大小写
  1. string2="ABCabc"
  2. m=re.search("[a-z]+",string2)
  3. m1=re.search("[a-z]+",string2,re.I)
  4. print(m.group())
  5. print(m1.group())
  6. #结果:
  7. abc
  8. ABCabc


②re.M #多行,"^"匹配每行的开头,"$"匹配每行的末尾,只影响^和$
  1. string3="yaobin jack rain hy"
  2. m=re.search("^y.+$",string3)
  3. m1=re.search("^y.+$",string3,flags=re.M)
  4. if m:
  5. print("m: %s"%(m.group()))
  6. if m1:
  7. print("m1: %s"%(m1.group()))
  8. #结果
  9. m1: yaobin


③re.S #使"."匹配包含换行符在内的任意字符
  1. string="abc dsf"
  2. m=re.match("(^a.*$)",string)
  3. m1=re.match("(^a.*$)",string,re.S)
  4. if m:
  5. print("m: %s"%(m.group()))
  6. if m1:
  7. print("m1: %s"%(m1.group()))
  8. #结果:
  9. m1: abc
  10. dsf






原文地址:https://www.cnblogs.com/binhy0428/p/5221228.html