1.正則函式
#### 正則函式
importre#
search 通過正則匹配出第乙個物件返回,通過group取出物件中的值
strvar = "
1+2 3*4
"obj = re.search("
\d+(.*?)\d+
",strvar)
#返回匹配到的內容(匹配到乙個就返回)
print(obj.group()) #
1+2#
把括號裡匹配到的內容扔到元組中返回
res =obj.groups()
(res)
#match 驗證使用者輸入內容(了解)
"""search 只要在正規表示式的前面加上^ 就和match一模一樣
"""strvar = "
y13566688771
"strvar = "
13566688771
"obj = re.search("
^\d+
",strvar)
print(obj.group()) #
13566688771
obj = re.match("
\d+"
,strvar)
(obj,group())
#split 切割
strvar = "
alex|xboy&wusir-egon
"res = re.split("
[|&-]
",strvar)
print(res) #
['alex', 'xboy', 'wusir', 'egon']
strvar = "
alex23423411122334xboyww90909045wusir78
"res = re.split("
\d+"
,strvar)
print(res) #
['alex', 'xboyww', 'wusir', ''] #這後面還有個空格
#sub 替換(正規表示式,替換的字串,原字串,[可選替換的次數])
strvar = "
alex|xboy&wusir-egon"#
strvar.replace("|","%")
#strvar.replace("&","%")
#strvar.replace("-","%")
res = re.sub("
[|&-]
","%
",strvar)
print(res) #
alex%xboy%wusir%egon
res = re.sub("
[|&-]
",strvar,1)
print(res) #
alex%xboy&wusir-egon 字串
#subn 替換與sub用法一樣,區別在於返回值不同,返回的是元組
res = re.subn("
[|&-]
","%
",strvar)
print(res) #
('alex%xboy%wusir%egon', 3) #返回的第二個引數為修改的次數
res = re.subn("
[|&-]
","%
",strvar,1)
print(res) #
('alex%xboy&wusir-egon', 1)
#finditer 匹配字串中相應的內容 返回迭代器
from collections import
iterator
strvar = "
sdfasf234234你好23423
"it = re.finditer(r"
\d+"
,strvar)
print(isinstance(it,iterator)) #
true
"""lst = list(it)
print(lst)
[<_sre.sre_match object; span=(6, 12), match='234234'>,
<_sre.sre_match object; span=(14, 19), match='23423'>
]234234
23423
"""for i in
it:
(i.group())
#compile 指定乙個統一的匹配規則
'''正常情況下,正規表示式執行一次,編譯一次
如果需要反覆使用,會浪費系統資源,比如記憶體,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']
#修飾符
#re.i 使匹配對大小寫不敏感
strvar = "
",flags=re.i)
obj =pattern.search(strvar)
(obj)
print(obj.group()) #
#re.m 使每一行都能夠單獨匹配(多行匹配) 影響 ^ 和 $
strvar = """
123"""
pattern = re.compile("
^<.*?>(?:/*?)<.*?>$
",flags=re.m)
print(pattern.findall(strvar)) #
['', '', '123']#
re.s 使 . 匹配包括換行在內的所有字元
strvar = """
give
1112233mefive
"""pattern = re.compile("
(.*?)mefive
",flags=re.s)
obj =pattern.search(strvar)
(obj.group())
"""give
1112233mefive
"""
2.物件導向初始
####oop 物件導向程式開發
#(1) 類的定義
class
car:
pass
class car(): #
推薦pass
class
car(object):
pass
#(2) 類的例項化
class
car():
pass
obj = car() #
類名加() => 例項化乙個物件
#(3)類的基本結構
'''類中只有2種成員
(1)成員屬性
(2)成員方法
'''class
car():
#成員屬性
color = "
屎黃色的"#
成員方法
deffunc(self):
print("
小車會跑")
#反例'''類中的**可以直接指向,但是嚴禁使用,不要直接把**裸露在類中
應該把相應的邏輯放在成員方法當中處理
'''class
car():
if r == 5:
print(4567)
#正確方法
class
car():
deffunc(self):
if 5 == 5:
print(4567)
#(4) 類的命名
'''類的命名推薦使用大駝峰命名法
mycar => mycar
dahuangfeng => dahuangfeng
'''#物件導向總結:
面向過程:
(1)優點:效率高,執行速度快
(2)缺點:維護性差,移植性差,表達不出一類的語意
物件導向:
(1)優點:可讀性,可移植性,可維護性高
(2)缺點:執行效率稍慢
JavaScript物件及初識物件導向
建立物件的兩種方法 方法 1 var flower new object flower.name 張三 flower.pwd admin flower.show function 方法 2 var flower 建構函式 function flower name,pwd var flower new...
JavaScript物件及初識物件導向
自定義物件 基於object物件的方式建立物件 var 物件名稱 new object var flower new object flower.name 長春花 flower.genera 夾竹桃科 長春花屬 flower.area 非洲 帶 熱帶以及中國大陸的華東 西南 中南等地 flower....
JavaScript物件及初識物件導向
number 數值型別 string 字串型別 boolean 布林型別 null 空型別 undefined 未定義型別 object 語法 var 物件名稱 new object var flower new object flower.name 長春花 flower.genera 夾竹桃科 長...