python常用模块

打印 上一主题 下一主题

主题 785|帖子 785|积分 2355

re模块

正则表达式符号:
表达符号阐明.匹配全部字符串,除\n以外-表现范围[0-9]*1.匹配前面的子表达式零次或多次,匹配前面的字符0次或多次
2.re.findall(“ab*”,“cabc3abcbbac”)结果:[‘ab’, ‘ab’, ‘a’]+匹配前面的子表达式一次或多次^匹配字符串开头$匹配字符串结尾\转义字符,可以将其他有特殊意义的字符串以原本意思表现,要匹配字符,请使用?匹配前一个字符串0次或1次
re.findall(‘ab?’,‘abcabcabcadf’)结果[‘ab’, ‘ab’, ‘ab’, ‘a’]匹配前一个字符m次
re.findall(‘cb{1}’,‘bchbchcbfbcbb’)结果[‘cb’, ‘cb’]匹配前一个字符n到m次
re.findall(‘cb{2,3}’,‘bchbchcbfbcbb’)结果[‘cbb’]\d匹配数字,即是[0-9]
re.findall(‘\d’,‘电话:10086’)结果[‘1’, ‘0’, ‘0’, ‘8’, ‘6’]\D匹配非数字,即是[^0-9]
re.findall(‘\D’,‘电话:10086’)结果[‘电’, ‘话’, ‘:’]\w匹配字母和数字,即是[A-Za-z0-9]
re.findall(‘\w’,‘alex123,./;;;’)结果[‘a’, ‘l’, ‘e’, ‘x’, ‘1’, ‘2’, ‘3’]\W匹配非英文字母和数字,即是[^A-Za-z0-9]
re.findall(‘\W’,‘alex123,./;;;’)结果[‘,’, ‘.’, ‘/’, ‘;’, ‘;’, ‘;’]\s匹配空白字符
re.findall(‘\s’,‘3*ds \t\n’)结果[’ ', ‘\t’, ‘\n’]\S匹配非空白字符
re.findall(‘\s’,‘3ds \t\n’)结果[‘3’, '’, ‘d’, ‘s’]\A匹配字符串开头\Z匹配字符串结尾\b匹配单词的词首和词尾,单词被界说为一个字母数字序列,因此词尾是用空白符或非字母数字符来表现的\B与\b相反,只在当前位置不在单词边界时匹配[]是界说匹配的字符范围。比如 [a-zA-Z0-9] 表现相应位置的字符要匹配英文字符和数字。[\s]表现空格或者号。正则表达式留意事项


  • 字符集
    作用:使用中括号来括住字符串来创建字符集,字符集可匹配他包括的任意字串
    1)‘[pj]ython’ 只可以或许匹配‘python’ ‘jython’
    2) ‘[a-z]’ 可以或许(按字母顺序)匹配a-z任意一个字符
    3)‘[a-zA-Z0-9]’ 能匹配任意一个大小写字母和数字
    4)‘[^abc]’ 可以匹配任意除a,b和c 之外的字符串
  • 可选项和重复子模式
    作用:在子模式后面加上问号,它就变成可选项,出现或者不出现在匹配字符串中都是合法的,例如:r’(aa)?(bb)?ccddee’ 只能匹配下面几种情况;
    1. ‘aabbccddee’
    2. ‘aaccddee’
    3. ‘bbccddee’
    4. ‘ccddee’
    复制代码
  • 字符串的开始和结尾
    1) ‘w+’ 匹配以w开通的字符串
    2) ‘[1](https://so.csdn.net/so/search?q=http&spm=1001.2101.3001.7020)’ 匹配以’http’ 开头的字符串
    3)‘ $com’ 匹配以‘com’结尾的字符串
常用函数

函数作用re.compile(pattern[, flags])根据正则表达式字符串创建模式对象re.search(pattern, string[, flags])扫描整个字符串并返回第一个乐成的匹配re.match(pattern, string[, flags])从字符串的起始位置匹配,如果起始位置匹配不乐成的话,match()就返回nonere.findall(pattern, string)找到RE匹配的全部字符串,并把他们作为一个列表返回re.split(pattern, string[, maxsplit=0])split可以或许按照所能匹配的字串将字符串举行切分,返回切分后的字符串列表re.finditer(pattern, string, flags=0)找到RE匹配的全部字符串,并把他们作为一个迭代器返回re.sub(pattern, repl, string, count=0, flags=0)替换匹配到的字符串re.escape(string)如果字符串中包罗了正则表达式的特殊字符,那么就必要使用re.escape函数来对这些特殊字符举行转义,以保证匹配的准确性<ul>re.compile(pattern[, flags])
1)把一个正则表达式pattern编译成正则对象,以便可以用正则对象的match和search方法
2)用了re.compile以后,正则对象会得到保存,这样在必要多次运用这个正则对象的时间,效率会有较大的提升
[code]import retrace_message = "-0     (-----) [004] .... 2628922.673375: cpu_idle: state=0 cpu_id=4"cpu_re = re.compile(r'^(.*?)\s+\((.*?)\)\s+\[(.*?)\]\s+\.\.\.\.\s(.*?):\s+(.*?)$')ret = re.match(cpu_re,log_message)print(ret)            #
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表