python 正則findall右斜杠_python中正則表達式的使用

本文將介紹幾個最常用的正則符號,以及正則表達式的應用場景。

如果說【數學表達式】刻畫的是數字的內在規律,那么【正則表達式】則是用來刻畫和描述字符串內在規律的表達式。記得剛接觸python時學習過slice,replace,split等方法,但是一旦遇到復雜的情況這些工具就不能使用了。這個時候【正則表達式】就派上了用場。

使用正則表達式需要導入【re模塊包】

import re

主要有三種使用場景

場景1:無法通過切片將字符串的子串返回 findall函數

#語法

findall(pattern,string,flags=0)

pattern:指定需要匹配的正則表達式

string:指定待處理的字符串

flags:指定匹配模式,常用的值可以是re.I,re.M,re.S,re.X

re.I模式是讓正則表達式對大小寫不敏感

re.M模式是讓正則表達式可以多行匹配

re.S模式是指正則符號可以匹配任意字符,包括換行符\n

re.X模式允許正則表達式可以寫得更加詳細,如多行表示,忽略空白字符,加入注釋等

場景2:借助replace無法完成非固定值或非固定位置值的替換 sub函數

#語法

sub(pattern,repl,string,count=0,flags=0)

pattern:指定需要匹配的正則表達式

repl:指定替換成的新值

string:指定待處理的字符串

count:用于指定最多替換的次數,默認0為全部替換

flags:同findall函數中的flags

場景3:借助于split方法無法按照多種值實現字符串的分割 re.split函數

#語法

split(pattern,string,maxsplit=0,flags=0)

pattern:指定需要匹配的正則表達式

string:指定待處理的字符串

maxsplit:用于指定最大分割次數,默認0為全部分割

flags:同findall中的flags

常用的正則符號(注意組合使用)原字符

2. 英文狀態的句號點 .

3. 反斜杠 \

4. 英文狀態的中括號[]

5. 英文狀態的圓括號()

6. 英文狀態的問號?

7. 加號+

8. 星號 *

9. 英文狀態的大括號{}

下面一一舉例介紹:原字符

指代直接存在于字符串內部的子串

#導入第三方模塊包

import re

#提取字符串中的子串

s1='python是一門計算機程序語言,python語言具有簡潔性、易讀性等特點'

re.findall('python',s1)

2. 英文狀態的句點號 .

指代任意字符(如數字、字母、標點符號、漢字等),但除了換行符\n

#提取出動力總成的值

s2='此次新朗逸主要搭載了1.5L和1.5T兩種動力總成的發動機。別克英朗則搭載了1.0T和1.3T的動力總成。'

#寫法1

re.findall('1...',s2)

#寫法2用到轉義字符\

re.findall('1\...',s2)

3. 反斜杠 \

\n 換行

\t Tab制表符

\d 0-9中的任一數字

\s 任意一種空白(如空格、Tab、換行等)

\w 字母、數字、下劃線中的任意一種(63種:52種字母大小寫,數字0-9共10種,_1種)

\. 句號點本身

\\ \本身

#剔除字符串中的所有空白

s3=' 距離2019北京馬拉松開跑只有兩周時間了,\n今年的北京馬拉松預報名人數超過16萬人,\t媒體公布的

中簽率只有16%左右,再創歷年來的新低。\n'

print(s3)

re.sub('\s','',s3)

4. 英文狀態的中括號[]

指代字符集合,當需要特定字符匹配時,可以選擇中括號

#取出手機號信息

s4='用戶聯系方式:13612345566,用戶編號:11011254321'

re.findall('1[356789]\d\d\d\d\d\d\d\d\d',s4)

#提取出動力總成

s5='通過對比新朗逸1.5L和1.5T兩種動力在1.5年行使期后的數據。發現1.5T的口碑相對較好!'

re.findall('1.5[a-zA-Z]',s5)

re.findall('1.5[LT]',s5)

5. 英文狀態的圓括號()

指代特定內容的截取

#提取出用戶的年齡

s6='id:1,name:Tom,age:3,gender:1;id=2,name=Lily,age=5,gender=0'

print(re.findall('\d',s6))

print(re.findall('age:\d',s6))

print((re.findall('age:(\d)',s6)))

6.英文狀態的問號 ?

表示匹配前一個字符0次或1次

#超鏈接的匹配

URL1='https://www.baidu.com/'

URL2='http://www.gov.cn/'

pattern='https?://www\..*?\..*?/'

7. 加號+

表示匹配前一個字符一次及以上

#郵箱地址的匹配

email1='Lsxxx2011@163.com'

email2='654088115@qq.com'

pattern='[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z_\-]+\.com'

8. 星號*

表示匹配前一個字符0次及以上

#提取出產品名稱中含有奶粉字樣的產品

prod=['嬰兒襪','亨氏奶粉','奶粉勺','多功能奶瓶','幼兒奶粉量筒','磨牙棒']

res[]

for i in prod:

res.extend(re.findall('.*奶粉.*',i))

res

# extend()函數用于在列表末尾一次性追加另一個序列中的多個值

9. 英文狀態的大括號{}

表示匹配前一個字符特定的次數或范圍

{m} 匹配前一個字符m次

{m,} 匹配前一個字符至少m次

{m,n} 匹配前一個字符m~n次

{,n} 匹配前一個字符之多n次

#手機號碼的匹配

pattern='1[356789]\d{9}'

#至少6個長度的密碼

pattern='\w{6,}'

#區號信息

pattern='0\d{2,3}'

正則表達式的案例應用取出字符中所有的天氣狀態

import re

string = "{ymd:'2018-01-01',tianqi:'晴',aqilnfo='輕度污染'},

{ymd:'2018-01-02',tianqi:'陰~小雨',aqilnfo='優'},

{ymd:'2018-01-03',tianqi:'小雨~中雨',aqilnfo='優'},

{ymd:'2018-01-04',tianqi:'中雨~小雨',aqilnfo='優'}"

print(re.findall("tianqi:'(.*?)'",string))

#.*?組合 防止盲目匹配,非貪婪式搜索

2. 取出所有含O/o字母的單詞

import re

string2='Together,we discovered that a free market only thrives when there are rules to

ensure competition and fair play,Our celebration of initiative and enterprise.'

print(re.findall('\w*o\w*',string2,flags=re.I))

3. 將標點符號、數字和字母刪除

import re

string3='據悉,這次發運的4臺蒸汽冷凝罐屬于國際熱核聚變實驗堆 (ITER)項目的核二級壓力設備,先后完成

了壓力試驗,真空試驗、氦氣檢漏實驗,千斤頂試驗,吊耳荷載試驗,疊裝試驗等驗收試驗'

print(re.sub('[,。、a-zA-Z0-9()]',"",string))

4.將每一部分的內容分割開

import re

string4='2室2廳|101.62平|低區/7層|朝南\n 上海未來-浦東-金楊-2005年建'

split=re.split('[-\|\n]',string4) #|代表或,所以要用轉義字符\

print(split)

split_strip=[i.strip() for i in split]

print(split_strip)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542325.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542325.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542325.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript | 用戶定義函數的一些示例

1) Design a function, print message and assign the function to a variable and print it like a function 1)設計一個功能&#xff0c;打印消息并將該功能分配給變量&#xff0c;然后像打印功能一樣打印 <html lang"en"><head><script>functi…

網易 html5,別再想不開做H5了

寫這篇文章的時候網易噠噠《飼養手冊》H5刷屏了&#xff0c;但我們依舊不建議品牌做H5。H5作為大眾傳播工具的時代&#xff0c;已經過去了。盡管去年有很多H5曾經刷屏過&#xff0c;但在當時我們就一直跟朋友說&#xff0c;不要再嘗試H5了&#xff0c;性價比根本算不過來&#…

python打開word后再關閉再打開出錯_用Python寫了個程序調用word,運行完后再手動打開word文檔就變慢了,這是為啥?...

公司歸檔文件比較麻煩&#xff0c;于是用Python寫了個程序自動歸檔&#xff0c;運行無錯誤。但是運行完后問題就來了&#xff0c;自己手動打開word文檔時速度變得奇慢&#xff0c;打開一個文檔需要1~2min,請各位同仁幫我看看。下為源代碼#歸檔.pyimport osimport refrom win32c…

編程 mcq_MCQ | 8255 PPI(可編程外圍接口)

編程 mcqQuestion 1: How many pins does the 8255 PPI IC contains? 問題1&#xff1a;8255 PPI IC包含多少個引腳&#xff1f; 24 24 20 20 32 32 40 40 Answer: d. 40 答案&#xff1a;d。 40 Question 2: In which mode do all the Ports of the 8255 PPI work as Input…

flex 修改生成html,CSS Flex –動畫教程

如果一張圖片勝過千言萬語 —— 那么動畫呢&#xff1f; Flex 無法通過文字或靜態圖像有效地完全解釋。為了鞏固你對flex的了解&#xff0c;我制作了這些動畫演示。注意 overflow: hidden 行為類型是默認值&#xff0c;因為 flex-wrap 還未設置。為了獲得更好的想法&#xff0c…

c#c#繼承窗體_C#繼承能力問題和解答 套裝5

c#c#繼承窗體1) Which keyword is used to call a superclass constructor from child class? supertopconstbase Answer & Explanation Correct answer: 4base In C#.NET, base keyword is used to call a base class constructor from a derived class. 1)使用哪個關鍵字…

python php 網站_python php網站

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技術人對外發布原創技術內容的最大平臺&…

陜西2021高考成績在哪查詢,2021陜西高考成績查詢入口

2021陜西高考成績查詢入口2021-05-13 19:38:37文/張敏有很多同學在關注2021年陜西高考成績的查詢方式&#xff0c;為了方便考生們查詢成績&#xff0c;小編整理了陜西高考成績查詢入口&#xff0c;希望對同學們有幫助。2021陜西高考成績查詢通道高考成績查詢過后應該做什么1、了…

Can’t Activate Reporting Services Service in SharePoint

訪問sharepoint的reporing service 的報表的時候莫名其妙的報錯&#xff1a; The requested service, http://amatltapp02:32843/1dacf49a2f7a4a6daa8db5768539893f/ReportingWebService.svc could not be activated. See the servers diagnostic trace logs for more informat…

scala python_Scala與Python | 哪種編程語言更好

scala pythonScala is a general-purpose programming language developed by Martin Odersky in 2004. Scala是Martin Odersky在2004年開發的通用編程語言。 Both Scala and Python are general purpose programming that is used in Data Science that supports Object Orie…

查找文件中每行第二個單詞_日語單詞中的長短音區別在哪里,日語長短音發音有什么規律...

日語單詞記憶長短音規律一、如果單詞的漢字在中文漢語拼音中是前鼻音&#xff0c;在日語讀音中就會帶撥音「ん」&#xff1b; 如果單詞的漢字在中文漢語拼音中是后鼻音&#xff0c;在日語讀音中就會帶有長音。例&#xff1a;専門&#xff08;zhuan men&#xff09;&#xff0d;…

SQL Server 執行計劃利用統計信息對數據行的預估原理二(為什么復合索引列順序會影響到執行計劃對數據行的預估)...

本文出處&#xff1a;http://www.cnblogs.com/wy123/p/6008477.html 關于統計信息對數據行數做預估&#xff0c;之前寫過對非相關列&#xff08;單獨或者單獨的索引列&#xff09;進行預估時候的算法&#xff0c;參考這里。  今天來寫一下統計信息對于復合索引在預估時候的計…

計算機三四級網絡技術,全國計算機等級考試四級網絡技術論述題真題3

1.(2003年)網絡安全策略設計的重要內容之一是&#xff1a;確定當網絡安全受到威脅時應采取的應急措施。當我們發現網絡受到非法侵入與攻擊時&#xff0c;所能采取的行動方案基本上有兩種&#xff1a;保護方式與跟蹤方式。請根據你對網絡安全方面知識的了解&#xff0c;討論以下…

哈密頓路徑_檢查圖形是否為哈密頓量(哈密頓路徑)

哈密頓路徑Problem Statement: 問題陳述&#xff1a; Given a graph G. you have to find out that that graph is Hamiltonian or not. 給定圖G。 您必須找出該圖是否為哈密頓量 。 Example: 例&#xff1a; Input: 輸入&#xff1a; Output: 1 輸出1 Because here is a …

京東自動下單軟件_黃牛軟件自動下單秒殺商品 警方用科技手段打擊

法制日報全媒體記者 張維定了10個鬧鐘,也搶不到一瓶茅臺&#xff1b;等了很久的iPhone新手機,打開網頁就秒沒……或許并不是因為你的手速、網速慢,而是黃牛黨在用軟件和你搶商品。近日,在“凈網2019”專項行動中,阿里安全協助江蘇省南通市公安局成功打掉了一個制作銷售黃牛軟件…

Mysql基礎之DML語句

增 1 給表的所有字段插入數據 INSERT INTO 表名 VALUES(值1&#xff0c;值2&#xff0c;值3&#xff0c;...&#xff0c;值n)&#xff1b; 2 給表的指定字段插入數據 INSERT INTO 表名(屬性1&#xff0c;屬性2&#xff0c;...&#xff0c;屬性n) VALUES(值1&#xff0c;值2&a…

河南招教考試計算機專業知識,河南教師招聘考試《計算機網絡技術基礎》知識點歸納七...

河南教師招聘考試《計算機網絡技術基礎》知識點歸納七1.ADSL是非對稱數字用戶線路&#xff0c;其下行速率為1.5&#xff5e;8 Mb/s&#xff0c;而上行速率則為16&#xff5e;640 kb/s。在一對銅雙絞線上的傳送距離可達5km左右&#xff0c;可同時上網打電話&#xff0c;互不影響…

Python程序檢查字符串是否是回文

What is palindrome string? 什么是回文字符串&#xff1f; A string is a palindrome if the string read from left to right is equal to the string read from right to left i.e. if the actual string is equal to the reversed string. 如果從左至右讀取的字符串等于…

content屬性的4種用途

content屬性瀏覽器支持情況&#xff0c;兼容到IE8瀏覽器&#xff0c;IE7及以下不支持用途一、配合:before及:after偽元素插入文本<div><p>偽元素</p> </div>p:before{content:CSS3;color:#4bb;font-weight:bold;margin-right:20px;background:#f0f0f0;…

內蒙古師范大學計算機科學技術學院,內蒙古師范大學計算機科學技術碩士生導師——李成城...

李成城&#xff0c;教授&#xff0c;碩導&#xff0c;1971年7月出生于內蒙古呼倫貝爾盟。2002年9月-2005年7月在北京郵電大學信息工程學院學習&#xff0c;獲得工學博士學位&#xff0c;主要研究領域是&#xff1a;自然語言理解、機器學習、圖像識別。1993年在內蒙古師范大學計…