在python中使用正則表達式


一.轉義符

  1.在python中的轉義符

    (1)\\n與\n的區別

    (2)r"\next" 通過r來進行轉義

    (3)"\\\\d"與"\\d"的組合

  2.在正則表達式中的轉義符

    (1)\\n   表示匹配\n這個字符

    (2)[(), +, *,/, ., ?, $]  這些符號在[]中會現原形

    (3)"\("  表示匹配(這個符號

二 re模塊

  1.字符串匹配

    (1)re.findall("正則表達式", "字符串")       返回一個列表,返回的內容為 匹配到的所有內容,如果沒有匹配到內容返回[].

    (2)re.search("正則表達式", "字符串")     返回匹配到結果的對象,如果沒有匹配到內容返回None

    (3)re.match("正則表達式", "字符串")       返回內容同上search,但是在字符串開頭必須匹配到內容,如果開頭沒匹配到返回None

  2.替換和切割

    (1)re.sub("正則表達式", "替換的內容", "字符串",個數(默認全部替換))   返回一個被替換過的字符串

    (2)re.subn("正則表達式", "替換的內容", "字符串",個數(默認全部替換))   返回一個元組,返回內容為被替換過 的字符串和替換的個數

  3.進階方法

    (1)re.compile("正則表達式")    (時間效率)  節省時間:只有多次使用某一個相同的正則表達式時才使用

    (2)re.findter("正則表達式", "字符串")  返回一個迭代器,通過for循環可得到匹配到的所有結果的對象.再使用group()打印用每個結果

三.正則表達式在python中使用的一些特殊用法

  1.findall+分組     優先顯示分組里的內容,要想取消分組優先,要在分組中加(?:)

  2.search+分組 通過group(n),可以得到group()匹配到的內容

  3.split+分組   保留分組內被分割掉的內容

  4.分組命名   

      (1).

ret = re.search("<(?P<name>\w+)>\w+</(?P=name)>", "<a>hahaha</a>")
print(ret.group())
print(ret.group("name"))
print(ret.group(1))
# print(ret.group(2))
ret = re.search(r"<(\w+)>\w+</\1>", "<a>hahaha</a>")
print(ret.group())
print(ret.group(1))
View Code

四.random模塊

  1.隨機小數

    (1).random.random()  0-1范圍內的隨機小數

    (2)random.uniform(1,5)任意范圍內的隨機小數

  2.隨機整數

    (1)random.randint(1,2)           [1,2]包含2在內的范圍內隨機整數

    (2)random.randrange(1,2)     [1,2) 不包含2在內的范圍內的隨機整數

    (3)random.randrange(1,10,2)    [1,10)不包含10在內的范圍內的隨機奇數

  3.隨機抽取

    (1)random.choice(list)   隨機從列表中抽取一個值

    (2)random.sample(lst,n)   隨機抽取n個值

    (3)random.stuffle(list)   在原列表的基礎上做亂序

 

隨機抽取
隨機抽取一個值
lst = [1,2,3,'aaa',('wahaha','qqxing')]
ret = random.choice(l)
print(ret)
隨機抽取多個值
ret = random.sample(lst,2)
print(ret)

打亂順序  在原列表的基礎上做亂序
lst = [1,2,3,'aaa',('wahaha','qqxing')]
random.shuffle(lst)
print(lst)

 

 def rand_code(n=6 , alph_flag = True):
     code = ''
     for i in range(n):
         rand_num = str(random.randint(0,9))
         if alph_flag:
             rand_alph = chr(random.randint(97,122))
             rand_alph_upper = chr(random.randint(65,90))
             rand_num = random.choice([rand_num,rand_alph,rand_alph_upper])
         code += rand_num
     return code

 ret = rand_code(n = 4)
 print(ret)
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM