正規表示式
^[1-9]\d[0-9x]$貪婪匹配^[1-9]\d[0-9x]$
^[1-9]\d(\d[0-9x])?$
^([1-9]\d[0-9x]|[1-9]\d)$
# 貪婪匹配就是盡可能多的匹配re模組123script>
<.*?>
# 加上?為將貪婪匹配模式轉為非貪婪匹配模式,會匹配盡量短的字串
.*?的用法
'''
. 是任意字元
* 是取 0 至 無限長度
? 是非貪婪模式。
何在一起就是 取盡量少的任意字元,一般不會這麼單獨寫,他大多用在:
.*?x
就是取前面任意長度的字元,直到乙個x出現
'''
在python中要想試用正規表示式,就要借助於re模組爬去紅牛官網資料import re
ret = re.findall('a', 'eva egon yuan') # 返回所有滿足匹配條件的結果,放在列表裡
print(ret) #結果 : ['a', 'a']
ret = re.search('a', 'eva egon yuan').group()
print(ret) #結果 : 'a'
# 函式會在字串內查詢模式匹配,只到找到第乙個匹配然後返回乙個包含匹配資訊的物件,該物件可以
# 通過呼叫group()方法得到匹配的字串,如果字串沒有匹配,則返回none。
ret = re.match('a', 'abc').group() # 同search,不過盡在字串開始處進行匹配
print(ret)
#結果 : 'a'
time模組
time.sleep(3)datetime模組time.time() # 秒數
'''
三種格式:
1. 時間戳
2. 結構化時間
3. 格式化時間
'''
import datetimerandom模組# print(datetime.datetime.today())
# print(datetime.datetime.now())
# print(datetime.date.today())
res=datetime.datetime.today()
# print(res.year)
# print(res.month)
# print(res.day)
# print(res.hour)
# print(res.second)
# print(res.minute)
# print(res.weekday())
# print(res.isoweekday())
# 重點 時間差
# timedelta物件
# 可以對時間進行運算操作
# 獲得本地日期 年月日
tday = datetime.date.today()
# 定義操作時間 day=7 也就是可以對另乙個時間物件加7天或者減少7點
tdelta = datetime.timedelta(days=3)
print(tday + tdelta)
"""
日期物件 = 日期物件 +/- timedelta物件
timedelta物件 = 日期物件 +/- 日期物件
驗證:
"""
# 定義日期物件
# now_date1 = datetime.date.today()
# # 定義timedelta物件
lta = datetime.timedelta(days=6, hours=10, minutes=20, microseconds=1111,weeks=4)
# now_date2 = now_date1 + lta # 日期物件 = 日期物件 +/- timedelta物件
# print(type(now_date2)) #
## print(now_date2)
# lta2 = now_date1 - now_date2 # timedelta物件 = 日期物件 +/- 日期物件
# print(lta2)
# 小練習 計算舉例今年過生日還有多少天
birthday = datetime.date(2022, 12, 21)
now_date = datetime.date.today()
days = now_date - birthday
print('生日:{}'.format(birthday))
print('今天的日期:{}'.format(tday))
print('距離生日還有/{}天'.format(days))
import datetime
# dt_today = datetime.datetime.today()
# dt_now = datetime.datetime.now()
dt_utcnow = datetime.datetime.utcnow() # utc時間與我們的北京時間cha ju
print(dt_utcnow)
def get_code(n=4):
code = ''
for i in range(n):
num = str(random.randint(0, 9))
'''chr:
ord'''
# a-z
upper = chr(random.randint(65, 90)) # a:97
# a-z
lower = chr(random.randint(97, 122))
code += random.choice([num, lower, upper])
return code
code = get_code(4)
code1 = get_code(8)
code2 = get_code(10)
print(code)
正規表示式 python re正則模組
python內建模組連線 re d w s 等解釋 快速使用 多行匹配 re.dotall 查詢 findall re.compile findall xml line 0 返回列表 match re.compile match xml line 返回第乙個,不搜尋新行,match group 返回...
re 正規表示式模組
import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...
正規表示式 re模組
re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元 含義.匹配除了換行符外的任何字元。可以用re.dotall來設定匹配任何字元,包括換行符 丨a丨b 表示正規表示式匹配a或者b 匹配輸入字串開始的位置,如果設...