国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python中的正則表達(dá)式(一)

這篇具有很好參考價(jià)值的文章主要介紹了Python中的正則表達(dá)式(一)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在Python中,正則表達(dá)式是一種用于匹配和操作字符串的強(qiáng)大工具。正則表達(dá)式由一系列字符和特殊字符組成,用于定義搜索模式。

在Python中,我們使用內(nèi)置的 re 模塊來操作正則表達(dá)式。要使用正則表達(dá)式,我們首先需要導(dǎo)入 re 模塊。

下面是一些常用的正則表達(dá)式的定義:

  • .:匹配任意字符(除了換行符)。

  • \d:匹配任意一個(gè)數(shù)字字符。

  • \D:匹配任意一個(gè)非數(shù)字字符。

  • \w:匹配任意一個(gè)字母數(shù)字字符(包括下劃線)。

  • \W:匹配任意一個(gè)非字母數(shù)字字符。

  • \s:匹配任意一個(gè)空白字符(包括空格、制表符、換行符等)。

  • \S:匹配任意一個(gè)非空白字符。

  • []:定義字符集,可以匹配其中的任意一個(gè)字符。例如,[abc] 匹配字符 a、bc

  • [^]:在字符集中的開頭使用 ^,表示取反。例如,[^abc] 匹配除了字符 a、bc 之外的任意一個(gè)字符。

  • *:匹配前一個(gè)字符的零個(gè)或多個(gè)出現(xiàn)。例如,a* 匹配零個(gè)或多個(gè)字符 a。

  • +:匹配前一個(gè)字符的一個(gè)或多個(gè)出現(xiàn)。例如,a+ 匹配一個(gè)或多個(gè)字符 a。

  • ?:匹配前一個(gè)字符的零個(gè)或一個(gè)出現(xiàn)。例如,a? 匹配零個(gè)或一個(gè)字符 a

  • {n}:匹配前一個(gè)字符的 n 個(gè)出現(xiàn)。例如,a{3} 匹配連續(xù)出現(xiàn)三個(gè)字符 a。

  • {m,n}:匹配前一個(gè)字符的 m 到 n 個(gè)出現(xiàn)。例如,a{2,4} 匹配連續(xù)出現(xiàn)兩個(gè)到四個(gè)字符 a

  • ():定義分組,用于對(duì)匹配的字符進(jìn)行分組或提取。

案例分析

一個(gè)文本文件里面存儲(chǔ)了 一些市場職位信息,格式如下所示

Python3?高級(jí)開發(fā)工程師?上?;ソ探逃萍加邢薰旧虾?浦東新區(qū)2萬/月02-18滿員
測試開發(fā)工程師(C++/python)?上海墨鹍數(shù)碼科技有限公司上海-浦東新區(qū)2.5萬/每月02-18未滿員
Python3?開發(fā)工程師?上海德拓信息技術(shù)股份有限公司上海-徐匯區(qū)1.3萬/每月02-18剩余11人
測試開發(fā)工程師(Python)?赫里普(上海)信息科技有限公司上海-浦東新區(qū)1.1萬/每月02-18剩余5人
Python高級(jí)開發(fā)工程師?上海行動(dòng)教育科技股份有限公司上海-閔行區(qū)2.8萬/月02-18剩余255人
python開發(fā)工程師?上海優(yōu)似騰軟件開發(fā)有限公司上海-浦東新區(qū)2.5萬/每月02-18滿員

現(xiàn)在,我們需要寫一個(gè)程序,從這些文本里面抓取所有職位的薪資。

要獲取這樣的結(jié)果

Python中的正則表達(dá)式(一),python,正則表達(dá)式,mysql,開發(fā)語言,數(shù)據(jù)庫

怎么做?大家先自己思考一下。

這是典型的字符串處理。分析這里面的規(guī)律,可以發(fā)現(xiàn),薪資的數(shù)字后面都有關(guān)鍵字 萬/月 或者 萬/每月,根據(jù)我們學(xué)過的知識(shí),我們不難寫出下面的代碼

content?=?'''
Python3?高級(jí)開發(fā)工程師?上海互教教育科技有限公司上海-浦東新區(qū)2萬/月02-18滿員
測試開發(fā)工程師(C++/python)?上海墨鹍數(shù)碼科技有限公司上海-浦東新區(qū)2.5萬/每月02-18未滿員
Python3?開發(fā)工程師?上海德拓信息技術(shù)股份有限公司上海-徐匯區(qū)1.3萬/每月02-18剩余11人
測試開發(fā)工程師(Python)?赫里普(上海)信息科技有限公司上海-浦東新區(qū)1.1萬/每月02-18剩余5人
Python高級(jí)開發(fā)工程師?上海行動(dòng)教育科技股份有限公司上海-閔行區(qū)2.8萬/月02-18剩余255人
python開發(fā)工程師?上海優(yōu)似騰軟件開發(fā)有限公司上海-浦東新區(qū)2.5萬/每月02-18滿員
'''

#?將文本內(nèi)容按行放入列表
lines?=?content.splitlines()
for?line?in?lines:
????#?查找'萬/月'?在?字符串中什么地方
????pos2?=?line.find('萬/月')
????if?pos2?<?0:
????????#?查找'萬/每月'?在?字符串中什么地方
????????pos2?=?line.find('萬/每月')
????????#?都找不到
????????if?pos2?<?0:?
????????????continue

????#?執(zhí)行到這里,說明可以找到薪資關(guān)鍵字
????#?接下來分析?薪資?數(shù)字的起始位置
????#?方法是?找到?pos2?前面薪資數(shù)字開始的位置
????idx?=?pos2-1

????#?只要是數(shù)字或者小數(shù)點(diǎn),就繼續(xù)往前面找
????while?line[idx].isdigit()?or?line[idx]=='.':
????????idx?-=?1

????#?現(xiàn)在?idx?指向?薪資數(shù)字前面的那個(gè)字,
????#?所以薪資開始的?索引?就是?idx+1
????pos1?=?idx?+?1

????print(line[pos1:pos2])

運(yùn)行一下,發(fā)現(xiàn)完全可以。在你高興完之后,我們?cè)倏纯磳懙拇a。怎么樣?

太麻煩了,是不是。為了從每行獲取薪資對(duì)應(yīng)的數(shù)字,我們可是寫了不少行代碼。這種從字符串中搜索出某種特征的子串有沒有更簡單的方法呢?

解決方案就是我們今天要介紹的 正則表達(dá)式 。

如果我們使用正則表達(dá)式,代碼可以這樣
content?=?'''
Python3?高級(jí)開發(fā)工程師?上海互教教育科技有限公司上海-浦東新區(qū)2萬/月02-18滿員
測試開發(fā)工程師(C++/python)?上海墨鹍數(shù)碼科技有限公司上海-浦東新區(qū)2.5萬/每月02-18未滿員
Python3?開發(fā)工程師?上海德拓信息技術(shù)股份有限公司上海-徐匯區(qū)1.3萬/每月02-18剩余11人
測試開發(fā)工程師(Python)?赫里普(上海)信息科技有限公司上海-浦東新區(qū)1.1萬/每月02-18剩余5人
Python高級(jí)開發(fā)工程師?上海行動(dòng)教育科技股份有限公司上海-閔行區(qū)2.8萬/月02-18剩余255人
python開發(fā)工程師?上海優(yōu)似騰軟件開發(fā)有限公司上海-浦東新區(qū)2.5萬/每月02-18滿員
'''

import?re
for?one?in??re.findall(r'([\d.]+)萬/每{0,1}月',?content):
????print(one)

運(yùn)行一下看看,結(jié)果是一樣的。但是代碼卻簡單多了。

正則表達(dá)式,是一種語法,用來描述你想搜索的字符串的特征。

這里指定了一個(gè)正則表達(dá)式

re.findall(r'([\d.]+)萬/每{0,1}月', content)([\d.]+)萬/每{0,1}月,就是正則表達(dá)式字符串,指定了搜索子串的特征。

為什么這么寫?我們后面再介紹。

findall函數(shù)返回所有匹配的子串,放在一個(gè)列表中。

從上面的例子可以看出,用正則表達(dá)式關(guān)鍵的地方在于,如何寫出正確的表達(dá)式語法。

正則表達(dá)式非常強(qiáng)大,語法非常復(fù)雜,如果你英文閱讀能力還可以,那太好了,點(diǎn)擊這里:https://docs.python.org/3/howto/regex.html,參考Python官方文檔里面的描述。具體的使用細(xì)節(jié)包括語法都在里面。

本教程會(huì)繼續(xù)給大家介紹一些常見的正則表達(dá)式語法。

想在線Python編程的,快從小蜜蜂網(wǎng)站:http://zglg.work 注冊(cè)登錄體驗(yàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-828797.html

Python中的正則表達(dá)式(一),python,正則表達(dá)式,mysql,開發(fā)語言,數(shù)據(jù)庫

到了這里,關(guān)于Python中的正則表達(dá)式(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python使用正則表達(dá)式識(shí)別代碼中的中文、英文和數(shù)字實(shí)例演示

    Python使用正則表達(dá)式識(shí)別代碼中的中文、英文和數(shù)字實(shí)例演示

    在文本處理和數(shù)據(jù)分析中,有時(shí)候需要從代碼中提取出其中包含的中文、英文和數(shù)字信息。正則表達(dá)式是一種強(qiáng)大的工具,可以幫助我們實(shí)現(xiàn)這一目標(biāo)。本文將分三個(gè)部分詳細(xì)介紹如何使用正則表達(dá)式在 Python 中識(shí)別代碼中的中文、英文和數(shù)字。 在 Python 中,可以使用 Unicod

    2024年02月14日
    瀏覽(29)
  • 【從零學(xué)習(xí)python 】63.正則表達(dá)式中的re.Match類及其屬性和方法介紹

    當(dāng)我們調(diào)用 re.match 方法、 re.search 方法,或者對(duì) re.finditer 方法的結(jié)果進(jìn)行迭代時(shí),拿到的數(shù)據(jù)類型都是 re.Match 對(duì)象。 這個(gè)類里定義了相關(guān)的屬性,可以直接讓我們來使用。 屬性和方法 說明 pos 搜索的開始位置 endpos 搜索的結(jié)束位置 string 搜索的字符串 re 當(dāng)前使用的正則表達(dá)

    2024年02月11日
    瀏覽(41)
  • Python正則表達(dá)式之學(xué)習(xí)正則表達(dá)式三步曲

    ????????正則表達(dá)式描述了一種字符串匹配的模式,可以用來檢查一個(gè)串的有無某子串,或者做子串匹配替換,取出子串等操作。也可以說正則表達(dá)式就是字符串的匹配規(guī)則,也可以理解為是一種模糊匹配,匹配滿足正則條件的字符串。 ????????1、數(shù)據(jù)驗(yàn)證(eg:表單驗(yàn)

    2024年02月15日
    瀏覽(95)
  • Python re.findall()中的正則表達(dá)式包含多個(gè)括號(hào)時(shí)的返回值——包含元組的列表

    當(dāng) re.findall() 中的正則表達(dá)式包含多個(gè)括號(hào)時(shí),返回值是一個(gè)列表,其中每個(gè)元素都是一個(gè)元組。這個(gè)元組的長度與正則表達(dá)式中括號(hào)的數(shù)量相同,元組中的每個(gè)元素都是與相應(yīng)括號(hào)中的模式匹配的文本。 輸出:

    2024年02月19日
    瀏覽(25)
  • python正則表達(dá)式-正則基礎(chǔ)

    目錄 一、任一元素 二、匹配特定的字符類別 ? ? ? ? ?1、d? w 三、多個(gè)元素 ? ? ? ? ?1、兩位元素 [][] ? ? ? ? ?2、* + ? ? ? ? ? ?3、重復(fù)次數(shù) {} ? ? ? ? ?4、位置匹配 ^ $ ? ? ? ? ?5、子表達(dá)式() ????????[]:1、[ab]?匹配a或b; ? ? ? ?2、[0-9]?匹配任意一個(gè)數(shù)

    2024年02月05日
    瀏覽(22)
  • 老夫的正則表達(dá)式大成了,桀桀桀桀!?。 綪ython 正則表達(dá)式筆記】

    特殊字符 .^$?+*{}[]()| 為特殊字符,若想要使用字面值,必須使用 進(jìn)行轉(zhuǎn)義 字符類 [] [] 匹配包含在方括號(hào)中的任何字符。它也可以指定范圍,例: [a-zA-Z0-9] 表示a到z,A到Z,0到9之間的任何一個(gè)字符 [u4e00-u9fa5] 匹配 Unicode 中文 [^x00-xff] 匹配雙字節(jié)字符(包括中文) 在 [] 中

    2024年02月04日
    瀏覽(21)
  • PYthon正則表達(dá)式

    PYthon正則表達(dá)式

    正則表達(dá)式是對(duì)字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對(duì)字符串的一種過濾邏輯。正則

    2024年01月17日
    瀏覽(66)
  • python 正則表達(dá)式

    python 正則表達(dá)式

    2024年01月17日
    瀏覽(30)
  • 機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    為了完成本關(guān)任務(wù),你需要掌握: 在 Python 中使用正則表達(dá)式; 最基礎(chǔ)正則表達(dá)式; 正則匹配函數(shù)。 在 Python 中使用正則表達(dá)式 正可謂人生苦短,我用 Python。Python 有個(gè)特點(diǎn)就是庫非常多,自然擁有正則匹配這種常見的庫,并且此庫已經(jīng)嵌入在 Python 標(biāo)準(zhǔn)庫中,使用起來非常

    2024年01月22日
    瀏覽(109)
  • 【自然語言處理】NLP入門(一):1、正則表達(dá)式與Python中的實(shí)現(xiàn)(1):字符串構(gòu)造、字符串截取

    【自然語言處理】NLP入門(一):1、正則表達(dá)式與Python中的實(shí)現(xiàn)(1):字符串構(gòu)造、字符串截取

    ?? 語言 是一種使用具有共同處理規(guī)則的溝通指令的廣義概念,這些指令可以通過視覺、聲音或觸覺等方式傳遞。語言可以分為自然語言、動(dòng)物語言和計(jì)算機(jī)語言。 ?? 自然語言 是人類發(fā)展過程中形成的一種信息交流方式,它包括口語和書面語,并且反映了人類的思想。

    2024年03月12日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包