python正则表达式练习

正则表达式修饰符 - 可选标志
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
修饰符    描述
re.I    使匹配对大小写不敏感
re.L    做本地化识别(locale-aware)匹配
re.M    多行匹配,影响 ^ 和 $
re.S    使 . 匹配包括换行在内的所有字符
re.U    根据Unicode字符集解析字符。这个标志影响 w, W, , B.
re.X    该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
#!/usr/bin/python3
 
import re
 
line = "Cats are smarter than dogs";
 
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
 
if searchObj:
   print ("searchObj.group() : ", searchObj.group())
   print ("searchObj.group(1) : ", searchObj.group(1))
   print ("searchObj.group(2) : ", searchObj.group(2))
else:
   print ("Nothing found!!")
searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter
emphasis_pattern = r'*([^*]+)*'
或者
emphasis_pattern = re.compile(r'''
... * # 起始突出标志——一个星号
... ( # 与要突出的内容匹配的编组的起始位置
... [^*]+ # 与除星号外的其他字符都匹配
... ) # 编组到此结束
... * # 结束突出标志
... ''', re.VERBOSE)

re.sub(emphasis_pattern, r'<em>1</em>', 'Hello, *world*!')

结果:
'Hello, <em>world</em>!'

其中1为逆向引用

详细参见

http://www.runoob.com/python3/python3-reg-expressions.html#flags

原文地址:https://www.cnblogs.com/xinjing-jingxin/p/8904546.html