1、正則
正則表達式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找
出滿足你想要的格式的句子.
{“basketId”: 0, “count”: 1, “prodId”: #prodId#, “shopId”: 1,
“skuId”: #skuId#} === #prodId#
re相關的文章: https://www.cnblogs.com/Simple-Small/p/9150947.html
regular表達式學習手冊:
https://tool.oschina.net/uploads/apidocs/jquery/regexp.html(規則)
https://gitee.com/thinkyoung/learn_regex
在線的正則驗證:https://c.runoob.com/front-end/854/
正則的語法規則:
1、匹配一個字符 (元字符)
\d 只匹配數字0-9
\w 匹配[0-9A-Za-z_] 數字字母下劃線 支持中文
. 除了換行符(\n)以外的所有字符。
2、正則的匹配次數
匹配前一個字符,0次或者多次 ==任意次
+匹配前一個字符,1次或者多次
?匹配前一個字符,0次或者1次
我們用的做多就是萬能表達式: 非貪婪匹配的 .?
? 非貪婪匹配模式:找到了## 兩個后 不會再找了就匹配成功了;
貪婪模式:盡可能去進行更多的匹配
非貪婪模式:盡可能少的去進行匹配
Python的正則的庫,內置庫 re , 直接導入re 庫,免安裝re模塊函數 : findall()
findall(正則表達式, 目標字符串) ,字符串從頭到尾去匹配,只要符合要求就會拿出來多個符合的結果 存到列表里,返回一個列表。
如果只想獲取里面的變量名 不需要這個## 限定符,可以加個括號括起來: 加了括號,就是只提取括號里的內容,## 就是左右邊界了
萬能正則:#.*?#,正則返回的數字是列表格式
- findall(正則表達式, 目標字符串) ,字符串從頭到尾去匹配,只要符合要求就會拿出來
- 多個符合的結果 存到列表里,返回一個列表。
- 如果匹配到任何結果: 返回的空列表
- 如果只想獲取里面的變量名 不需要這個## 限定符,可以加個括號括起來: 加了括號,就是只提取括號里的內容,## 就是左右邊界了。
占位符包裹的變量找出來
- 整體替換掉 -用環境變量的屬性值
- 在替換之前 要判斷環境變量是否有這個屬性 – access_token token_type
- 用這個變量名字 判斷屬性
import restr_data = '{"Content-Type":"application/json","Accept-Language":"zh","Authorization": "#token_type##access_token#"}'result = re.findall("#.*?#",str_data)
print(result) # ['#token_type#', '#access_token#']result = re.findall("#(.*?)#",str_data)
print(result) # ['token_type', 'access_token']
在這里插入代碼片