1. 程式人生 > 實用技巧 >藉助ADB凍結與解除安裝Android系統應用(免ROOT)

藉助ADB凍結與解除安裝Android系統應用(免ROOT)

一、findall與search方法

import re


ret = re.findall('\d', '19621asd1695412rf')
print(ret)

ret1 = re.search('\d+r', '19621asd1695412rf')
print(ret1) # 物件
if ret1:
    print(ret1.group())


# 分組現象 # findall 按照完整的正則進行匹配,但是顯示括號裡匹配到的內容 ret2 = re.findall('9(\d)\d', '19621asd1695412rf') print(ret2) ret3 = re.search('
9(\d)(\d)', '19621asd1695412rf') print(ret3) # 物件 if ret3: print(ret3.group()) # 取第一個符合正則的內容 print(ret3.group(1)) # group(n)指定獲得的第n個分組匹配到的內容 print(ret3.group(2)) # 為什麼在search中不需要分組優先,而在findall中需要? # findall # 加上括號,是為了對真正需要的內容進行提取 s = '<h1>dasdsa930sadsa02391-</h1>' ret = re.findall('
<.*?>(.*)</.*?>', s) print(ret[0]) # search ret = re.search('<.*?>(.*)</.*?>', s) print(ret.group(1)) # 為什麼要用分組,以及findall的分組優先 s1 = '2-3*(5+6)' # 匹配出a+b 或者a-b 並計算它們的結果 ret = re.findall('(\d+)\+(\d+)', s1) print(ret) print(int(ret[0][0]) + int(ret[0][1])) # with open('movie_name.txt
', encoding='utf-8') as f: #print(f.read()) content = f.read() r = re.findall('<span class="title">(.*?)</span>.*?</a>', content, flags=re.S) print(r) print(len(r)) # 如果我們要查詢的內容在一個複雜的環境中 # 我們要查詢的內容並沒有一個突出的特點,甚至會和不需要的資料雜亂的混合在一起 # 這個時候我們就需要把所有的資料都統計出來,然後對這個資料進行篩選,把我們真正 # 需要的資料對應的正則表示式用()括起來 # 這樣我們就可以拿到真正想要的資料啦 # 取消分組的優先順序 ret = re.findall('1(?:\d)(\d)', '123') # 取消第一個分組的優先順序 print(ret)

二、其他方法

import re

# findall  ***
# search  ***


# # compile  *** --節省程式碼時間的工具
# # 假如同一個正則表示式要被使用多次,就可以先解析該正則表示式並通過一個變數儲存下來
# ret = re.compile('\d+')
# print(ret.findall('s961gdx123fd'))
#
#
# # finditer  *** --節省空間
# ret = re.finditer('\d+', 's961gdx123fd') # 迭代器
# for i in ret:
#     print(i.group())

# 先 compile(如果沒有重複使用同一個正則,也不能節省時間)後finditer
ret = re.compile('\d+')
res = ret.finditer('fd321df6fd46d11')
for i in res:
    print(i.group())


# # match   預設從頭開始匹配,一般用來規定該字串必須是什麼樣的
# ret = re.match('\d+', '123eva456taibai')
# print(ret.group())


# # split
# ret = re.split('\d+', 'alex222wusir')
# print(ret)
# ret = re.split('\d(\d)\d', 'alex222wusir') # 保留括號內被切掉的內容
# print(ret)
#
#
# # sub  替換  將正則匹配到的內容替換成別的內容
# ret = re.sub('\d+', 'H', 'alex123wusir456')
# print(ret)
#
#
# # subn  # 也是替換,返回替換後的內容和替換的次數形成的元組
# ret = re.subn('\d+', 'H', 'alex123wusir456')
# print(ret)



# 功能
# 效能
    # 時間:
        # 完成一個程式碼所需要執行的程式碼行數
        # 執行程式碼的過程中,底層程式是如何工作的

    # 空間
        # 是佔用了寶貴的記憶體資源
        # 英雄程式的執行效率


# 使用者體驗

三、分組命名

# 分組命名:(?P<組名>正則)  (?P=組名)
import re

ret = re.search('\d(\d)\d(?P<name1>\w+?)(\d)(?P<name2>\w)', '1231sd1_52432ghbr')
print(ret.group('name1'))
print(ret.group('name2'))


# 分組命名的引用:****
exp = '<h1>sad654a6s4dv</h1><a>5621df</a>'
ret = re.search('<(?P<n1>\w+)>(.*?)</(?P=n1)>', exp)
print(ret.group())
print(ret.group(2))


# 方式二:不常用
# exp = '<h1>sad654a6s4dv</h1><a>5621df</a>'
# ret = re.search(r'<(\w+)>(.*?)</\1>', exp)
# print(ret.group())
# print(ret.group(2))


# r""  取消字串內部所有的轉義
ret = re.search(r'\\n', r'\n')
print(ret.group())