码迷,mamicode.com
首页 > 编程语言 > 详细

python--内置函数03

时间:2019-04-08 21:17:19      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:too   search   迭代器   arch   元字符   复制   div   xxxx   字母   

一 . 正则表达式 匹配字符串

技术图片
  元字符
  . 除了换行
  \w 数字, 字母, 下划线
  \d 数字
  \s 空白符
  \n
  \t
  \b 单词的边界
  \W 非xxx
  \D
  \S
  [ ] 字符组 or的关系
  [^xxx] 非xxxx
  ^ 字符串的开始
  $ 字符串的结束
  | 或者

  ‘ ‘ 啥都能匹配
量词
  * 0->n
  + 1->n
  ? 0->1
  {p} p次
  {p,q} p->q次
  {p,} 至少p次

贪婪和惰性
  .*
  .+
  惰性:
  .*?宝宝 尽可能少的匹配

转义 \\\\n => \\n => \n
  正则前面加r

分组 ()
技术图片

 

二 . 在python中使用正则. re

  (?P<name>正则)
  1. search() 搜索. 搜索到第一个结果返回

技术图片
import re
# search 搜索, 查找
# 一旦匹配到结果. 直接返回, 如果匹配不到结果. 返回None
result = re.search("\d+", "宝宝45的电话是123")
print(result) # <_sre.SRE_Match object; span=(6, 9), match=‘123‘>
print(result.group()) # 45
技术图片

 

  2. match() 匹配. 收到一个结果返回. 从头开始匹配

import re
# 匹配, 从头开始匹配. 相当于在你正则前面加了一个^
result = re.match("\d+", "434宝宝的电话是:")
print(result.group())  # 434

 

# search和match的区别:  search查找. 找到了结果就返回. match. 从头开始匹配.


  3. findall() 查找所有匹配结果

import re
result = re.findall("\d+", "baby的电话号是: 185123456789")
print(result) # [‘185123456789‘]

 

  4. finditer() 返回迭代器.

import re
it = re.finditer("\d+", "baby123456789的电话号是: 185123456789")
for el in it:
    print(el.group()) # 分组  123456789   185123456789

 

  5. compile() 编译
  6. group("name") 获取数据
  7. re.S 干掉 . 的换行

python--内置函数03

标签:too   search   迭代器   arch   元字符   复制   div   xxxx   字母   

原文地址:https://www.cnblogs.com/uiys/p/10673198.html

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