码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式编译和DOTALL模式

时间:2020-01-28 19:01:52      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:环境   list   dal   imp   生成   正则表达   表达式   设置   bin   

re.compile()

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re

string = '123abc'

string_list = ["123abc","123abc123"]


# print(re.findall('\d+',string))


# pattern = re.compile('\d+')  #1. 编译生成匹配规则
# print(pattern.findall(string))  # 2. 匹配数据


pattern = re.compile('\d+')
for string in string_list:
    print(pattern.findall(string))
  • re.findall ==> 1. 编译生成匹配规则 2. 匹配数据
    会创建上下文环境,吃性能和内存
  • re.compile()创建匹配规则,可以重复利用

DOTALL模式

  • re.DOTALL == re.S == re.RegexFlag.DOTALL == re.RegexFlag.S
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import re
string = '''
    abcd
    abcd
'''
pattern = re.compile('a(.*?)d')    # 非贪婪 ['bc', 'bc']
pattern = re.compile('a(.*)d')    # 贪婪 ['bc', 'bc']

pattern = re.compile('a(.*)d',re.RegexFlag.S)    # DOTALL模式 ['bcd\n    abc']

print(pattern.findall(string))
  • (.*) 贪婪模式 -> 尽可能多的匹配
  • (.*?) 非贪婪模式 -> 一旦匹配
  • . 匹配的除‘\n‘以外所有字符,设置 DOTALL模式,让 . 匹配包括 ‘\n‘ 所有字符

正则表达式编译和DOTALL模式

标签:环境   list   dal   imp   生成   正则表达   表达式   设置   bin   

原文地址:https://www.cnblogs.com/oklizz/p/12238505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!