最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python語法學(xué)習(xí)之正則表達式的使用詳解

 更新時間:2022年04月16日 08:40:41   作者:渴望力量的哈士奇  
要想成功的進行字符串的匹配需要使用到正則表達式模塊,正則表達式匹配規(guī)則以及需要被匹配的字符串。本文詳細(xì)為大家介紹了如何利用正則表達式實現(xiàn)字符的匹配,感興趣的可以了解一下

要想成功的進行字符串的匹配需要使用到正則表達式模塊,正則表達式匹配規(guī)則以及需要被匹配的字符串。在這三個條件中,模塊與字符串都是準(zhǔn)備好的,只有匹配規(guī)則異常的靈活,而今天這個章節(jié)就是認(rèn)識一下正則表達式中的特殊字符,通過這些字符就可以針對我們想要的數(shù)據(jù)進行匹配。

正則表達式中的特殊字符

特殊字符描述
\d匹配任何十進制的數(shù)字,與[0-9]一致
\D匹配任意非數(shù)字
\w匹配任何字母數(shù)字下劃線及unicode字符集
\W匹配非字母數(shù)字的數(shù)據(jù)以及下劃線
\s匹配任何空格字符,與 [\n \t \r \v \f] 相同
\S匹配任意非空字符
\A匹配字符串的起始
\Z匹配字符串的結(jié)束
.匹配任何字符(除了 \n 之外);也叫做通配符

正則表達式的使用

接下來看一個小案例,幫助我們了解這些 特殊字符的使用方法 。

import re

test_data = "My name is Neo, I'm 30 years old."		# 將一串字符串賦值給變量 test_data
result_int = re.findall('\d', test_data)	# 使用 findall 函數(shù)并傳入 '\d' 的匹配規(guī)則匹配 test_data(只匹配數(shù)字)
result_Space = re.findall('\s', test_data)	# 使用 findall 函數(shù)并傳入 '\d' 的匹配規(guī)則匹配 test_data(只匹配空格)
result_str = re.findall('\w', test_data)	# 使用 findall 函數(shù)并傳入 '\d' 的匹配規(guī)則匹配 test_data(匹配字符串)
result_str_start = re.findall('\AMy', test_data)			# 匹配開頭為 My 的字符串
result_str_start_null = re.findall('\AMya', test_data)		# 匹配開頭為 Mya 的字符串(不存在 mya ,返回空列表)
result_str_end = re.findall('old.\Z', test_data)			# 匹配結(jié)尾為 old. 的字符串
result_str_end_null = re.findall('zold.\Z', test_data)		# 匹配結(jié)尾為 zold. 的字符串(不存在 zold ,返回空列表)
result_all = re.findall('.', test_data)		# 匹配除了 \n 之外的所有字符(包含空格)

print(result_int)
print(result_Space)
print(result_str)		# 從結(jié)果上來看 \w 要比 \d 更高級一些,不僅匹配了 str,也匹配了 int(實際上這里的int依然是字符串)
print(result_str_start)
print(result_str_start_null)
print(result_str_end)
print(result_str_end_null)

# >>> 執(zhí)行結(jié)果如下
# >>> ['3', '0']
# >>> [' ', ' ', ' ', ' ', ' ', ' ', ' ']
# >>> ['M', 'y', 'n', 'a', 'm', 'e', 'i', 's', 'N', 'e', 'o', 'I', 'm', '3', '0', 'y', 'e', 'a', 'r', 's', 'o', 'l', 'd']
# >>> ['My']
# >>> []
# >>> ['old.']
# >>> []
# >>> ['M', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'N', 'e', 'o', ',', ' ', 'I', "'", 'm', ' ', '3', '0', ' ', 'y', 'e', 'a', 'r', 's', ' ', 'o', 'l', 'd', '.']

正則小案例 - 1

1、定義一個函數(shù),判斷傳入?yún)?shù)是否包含有數(shù)字。

2、定義一個函數(shù),判斷傳入?yún)?shù)是否含有數(shù)字,如果有則移除。

import re


def have_number(data):      # 定義一個判斷是否存在數(shù)字的函數(shù)
    result = re.findall('\d', data)     # 利用 re 模塊的 findall 函數(shù)的 \d 規(guī)則判斷傳入的 data 是否存在數(shù)字
    print(result)
    for i in result:        # 利用 for 循環(huán) 判斷 result 的結(jié)果,如果存在返回 True ;反之返回 False
        return True
    return False

def remove_number(data):
    result = re.findall('\D', data)
    print(result)
    return ' '.join(result)


if __name__ == '__main__':
    test_data_1 = "My name is Neo, I'm 30 year's old."
    test_data_2 = "it's a beautiful day to be with you"
    result = have_number(test_data_1)
    print(result)
    result = remove_number(test_data_1)
    print(result)
    result = re.findall('\W', test_data_2)      # 匹配非字母數(shù)字的數(shù)據(jù)以及下劃線
    print(result)

運行結(jié)果如下圖:

正則小案例 - 2

1、定義一個 startwith 函數(shù) 判斷傳入數(shù)據(jù)是否是字符串的開頭

2、定義一個 endwith 函數(shù) 判斷傳入數(shù)據(jù)是否是字符串的結(jié)尾

import re


def startswith(sub, data):
    _sub = '\A{}'.format(sub)
    result = re.findall(_sub, data)

    for i in result:
        return True
    return False

def endswith(sub, data):
    _sub = '{}\Z'.format(sub)
    result = re.findall(_sub, data)

    if len(result) == 0:
        return False
    else:
        return True
    
    
if __name__ == '__main__':
    result = startswith('My', test_data_1)
    print(result)
    result = endswith('old.', test_data_2)
    print(result)

執(zhí)行結(jié)果如下:

正則小案例 - 3

1、python 內(nèi)置函數(shù) len() 是可以獲取到字符串的長度的,但是當(dāng)字符串中存在著空格符號的時候也會計算在長度內(nèi)。

2、利用正則的知識,定義一個計算字符串真實長度的函數(shù)

import re


def real_len(data):
    result = re.findall('\S', data)
    return len(result)


if __name__ == '__main__':
    test_data_1 = "My name is Neo, I'm 30 year's old."
    test_data_2 = "it's a beautiful day to be with you"

    print(len(test_data_2))
    result = real_len(test_data_2)
    print(result)

運行結(jié)果如下:

以上就是Python語法學(xué)習(xí)之正則表達式的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Python正則表達式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python生成二維碼的實例詳解

    python生成二維碼的實例詳解

    這篇文章主要介紹了python生成二維碼的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • 對pytorch中不定長序列補齊的操作

    對pytorch中不定長序列補齊的操作

    這篇文章主要介紹了對pytorch中不定長序列補齊的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 利用百度API識別圖片文字(多線程版)

    python 利用百度API識別圖片文字(多線程版)

    這篇文章主要介紹了python 利用百度API識別圖片文字(多線程版),幫助大家更好的利用python進行機器識別,感興趣的朋友可以了解下
    2020-12-12
  • Python遍歷文件夾和讀寫文件的實現(xiàn)代碼

    Python遍歷文件夾和讀寫文件的實現(xiàn)代碼

    這篇文章主要介紹了Python遍歷文件夾和讀寫文件的實現(xiàn)代碼,需要的朋友可以參考下
    2016-08-08
  • 教你使用python畫一朵花送女朋友

    教你使用python畫一朵花送女朋友

    這篇文章主要為大家講解如何使用python畫一朵花,送女朋友,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Django項目的創(chuàng)建全過程

    Django項目的創(chuàng)建全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Python解釋器、切換默認(rèn)版本、使用虛擬環(huán)境安裝Django,并通過PyCharm創(chuàng)建和管理Django項目
    2025-01-01
  • Python隨手筆記第一篇(2)之初識列表和元組

    Python隨手筆記第一篇(2)之初識列表和元組

    Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個元素都被分配一個序號,元素的位置,第一原元素的位置為0,因此類推,序列是最基本的數(shù)據(jù)結(jié)構(gòu),本文給大家分享Python隨手筆記第一篇(2)之初識列表和元組,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • python中decimal模塊的用法

    python中decimal模塊的用法

    本文主要介紹了python中decimal模塊的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python中PyQt5可視化界面通過拖拽來上傳文件的實現(xiàn)

    Python中PyQt5可視化界面通過拖拽來上傳文件的實現(xiàn)

    本文主要介紹了Python中PyQt5可視化界面通過拖拽來上傳文件的實現(xiàn),通過構(gòu)建一個可接受拖拽的區(qū)域,并重寫相關(guān)事件處理函數(shù),可以方便地實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 在Python3 numpy中mean和average的區(qū)別詳解

    在Python3 numpy中mean和average的區(qū)別詳解

    今天小編就為大家分享一篇在Python3 numpy中mean和average的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

云安县| 灵山县| 曲周县| 余姚市| 新巴尔虎右旗| 宽甸| 抚顺市| 普陀区| 花莲县| 肇源县| 阳城县| 九龙县| 茌平县| 诏安县| 隆尧县| 怀宁县| 西安市| 金寨县| 大庆市| 瑞丽市| 庐江县| 宕昌县| 丰城市| 城固县| 朝阳县| 兴山县| 靖州| 茌平县| 明水县| 德昌县| 交城县| 平原县| 神木县| 维西| 穆棱市| 连平县| 县级市| 竹北市| 商水县| 叙永县| 勐海县|