ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python学习第19天

2020-05-25 16:02:48  阅读:264  来源: 互联网

标签:obj re python pattern 学习 19 Car print strvar


一.正则函数

1.search 通过正则匹配出第一个对象返回,通过group取出对象中的值

2.match 验证用户输入的内容(了解)

search只要在正则边大师前面加上^就和match一模一样

3.split 切割

strvar = "alex|xboy&wusir-egon"
res = re.split("[|&-]",strvar)

4.sub 替换(正则表达式,替换的字符串,原字符串.[可选的替换次数])

strvar = "alex|xboy&wusir-egon"
res = re.sub("[|&-]","%",strvar,1)
print(res) # alex%xboy&wusir-egon

5.subn 替换与sub的用法一样,区别在于返回值不同,subn返回的是元组

res = re.subn("[|&-]","%",strvar)
print(res) # ('alex%xboy%wusir%egon', 3)

6.finditer 匹配字符串中相应内容,返回迭代器

from collections import Iterator
strvar = "sdfasf234234你好23423"
it = re.finditer(r"\d+",strvar)
print(isinstance(it,Iterator))
for i in it:
	print(i.group())
#234234
#23423

7.complie 指定一个统一的匹配规则

正常情况下,正则表达式执行一次,编译一次

如果需要反复使用,会浪费系统资源,比如内存,cpu

compile可以使正则编译一次,终身受益,无需反复编译

strvar = "sdfasf234234你好23423"
pattern = re.compile("\d+")
print(pattern) # re.compile('\\d+')

obj = pattern.search(strvar)
print(obj.group()) # 234234
lst = pattern.findall(strvar)
print(lst) # ['234234', '23423']

修饰符

1 . re.I 使匹配对大小写不敏感

strvar = "<h1>123</H1>"
pattern = re.compile("<h1>(.*?)</h1>",flags=re.I)
obj = pattern.search(strvar)
print(obj)
print(obj.group()) # <h1>123</H1>

2 . re.M 使每一行都能够单独匹配(多行匹配) 影响 ^ 和 $

strvar = """<h1>123</H1>
<p>123</p>
<div>123</div>
"""
pattern = re.compile("^<.*?>(?:.*?)<.*?>$",flags=re.M)
print(pattern.findall(strvar)) # ['<h1>123</H1>', '<p>123</p>', '<div>123</div>']

3 . re.S 使 . 匹配包括换行符在内的所有字符

strvar = """give
1112233mefive
"""
pattern = re.compile("(.*?)mefive",flags=re.S)
obj = pattern.search(strvar)
print(obj.group()) # 1112233mefive
"""
   give
   1112233mefive
"""

二. oop面向对象开发

1.类的定义

class Car:
   pass
   
class Car(): # (推荐)
   pass

class Car(object):
   pass

2.类的实例化

class Car():
   pass
obj = Car()

3.类的基本结构

1)成员属性

2)成员方法

class Car():
   # 成员属性
   color = "屎黄色的"
   # 成员方法
   def func():
      print("小车会跑")

**注意:

类中的代码可以直接执行,但是严禁使用,不要直接把代码裸露在类中,应该把相应的逻辑放在成员方法中处理

# 反例
class Car():
   if 5 == 5:
      print(4567)

# 正确的方法
class Car():
   def func():
      if 5 == 5:
         print(4567)

4.类的命名

推荐使用大驼峰命名法

mycar => MyCar
dahuangfeng => DaHuangFeng

标签:obj,re,python,pattern,学习,19,Car,print,strvar
来源: https://www.cnblogs.com/yunchao-520/p/12957366.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有