1. 程式人生 > >【作業】python實驗3【正則表示式】

【作業】python實驗3【正則表示式】

 1. 匹配網址

有一批網址:
http://www.interoem.com/messageinfo.asp?id=35
http://3995503.com/class/class09/news_show.asp?id=14
http://lib.wzmc.edu.cn/news/onews.asp?id=769
http://www.zy-ls.com/alfx.asp?newsid=377&id=6
http://www.fincm.com/newslist.asp?id=415

需要   正則後為:

http://www.interoem.com/ 
http://3995503.com/ 
http://lib.wzmc.edu.cn/ 
http://www.zy-ls.com/ 
http://www.fincm.com/

import re
S=['http://www.interoem.com/messageinfo.asp?id=35'
   ,'http://3995503.com/class/class09/news_show.asp?id=14',
   'http://lib.wzmc.edu.cn/news/onews.asp?id=769',
   'http://www.zy-ls.com/alfx.asp?newsid=377&id=6',
   'http://www.fincm.com/newslist.asp?id=415']
for i in S:
    t=re.sub(r'(\.com/.+)','.com/',i)
    if t==i:
        t=re.sub(r'(\.cn/.+)','.cn/',i)
    print(t)

2. 查詢所有的單詞

import re
str="hello world ha ha"
pat='[a-zA-Z]+'
ans=re.findall(pat,str)
print(ans)

3. 匹配用一個空格分隔的任意一對單詞,比如,名和姓

"3. 匹配用一個空格分隔的任意一對單詞,比如,名和姓"
import re
test="Lu Xun is a famous writer"
ans=re.findall('[a-zA-Z]+',test)
print(ans)

4. 匹配所有合法的Python識別符號

"""4. 匹配所有合法的Python識別符號"""
import re
str=input("請輸入一串字串")
str=str.split()
pat=re.compile(r'^[_a-zA-Z]\w*$')
ans=[]
for i in str :
    t=pat.findall(i)
    ans.extend(t)
print(ans)
"""abc _123 123 a_b"""

5. 匹配合法的ip地址```

"5. 匹配合法的ip地址```"
"""'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'"""
import re
test=["192.168.1.1","192.165.2.3","123.4.5","192.168.3,1"]
ans=[]
pat=re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$')
for i in test:
    t=pat.findall(i)
    ans.extend(t)
print(ans)

6. 匹配所有合法的電子郵件地址(先寫出一個限制比較寬鬆的正則表示式,然後儘可能加 強限制條件,但要保證功能的正確性)。 

"""6. 匹配所有合法的電子郵件地址
(先寫出一個限制比較寬鬆的正則表示式,
然後儘可能加 強限制條件,但要保證功能的正確性)。 
"""

"""
'^\[email protected](\w+\.)+\w+$'
"""
import re
test=["[email protected]","[email protected]"]
ans=[]
pat=re.compile(r'^\[email protected]\w+\.+\w+$')
for i in test:
    t=pat.findall(i)
    ans.extend(t)
print(ans)

7. 將一篇中文文章中的電子郵件地址替換為你自己的電子郵件地址

"""
7. 將一篇中文文章中的電子郵件地址替換為你自己的電子郵件地址
"""

"""
'^\[email protected]\w+\.+\w+$'
"""
import re
test="示例 : 請替換 電子郵箱 [email protected]"
print(test)
pat=re.compile(r'\[email protected]\w+\.+\w+',re.I)
t=pat.sub('[email protected]',test)
print(t)

8. 取出屬性data-original對應的url


 <imgdata-original="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" src="https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg" style="display: block;">

"""
8.取出屬性data-original對應的url
"""
import re
test="<img data-original=\"https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg\" src=\"https://rpic.douyucdn.cn/z1609/07/15/478748_160907150833.jpg\" style=\"display: block;\">"
print(test)
pat='<img data-original=\"(.+)\" src=\"(.+)\" style=\"display: block;\">'
result=re.search(pat,test)
t1=result.group(1)
t2=result.group(2)
print(" data-original "+t1)
print(" src "+t2)

相關推薦

作業python實驗3表示式

 1. 匹配網址 有一批網址: http://www.interoem.com/messageinfo.asp?id=35 http://3995503.com/class/class09/news_show.asp?id=14 http://lib.wzmc.edu.cn

python 表示式python表示式提取郵箱、網址、手機號、ip地址

要從文字中提取電子郵件、url、手機號、ip地址等,我們可以使用殺手鐗正則表示式。下面是我封裝的函式,方便以後拿來直接用。 # encoding: utf-8 import re # 自定義獲取文

135.Python修煉之路140-前端-JQuery-表示式2018.08.04

正則表示式 1、什麼是正則表示式:  能讓計算機讀懂的字串匹配規則。 2、正則表示式的寫法: var re=new RegExp('規則', '可選引數'); var re=/規則/引數; 3、規則中的字元  1)普通字元匹配: 如:/a/ 匹配字元 ‘a’,/a,b

傑瑞的專欄架構師、指令碼語言專家;精通Python、Shell、表示式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多種程式語言;在效能,開源,自動化測試方面有非常豐富的經驗

傑瑞的專欄 架構師、指令碼語言專家;精通Python、Shell、正則表示式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多種程式語言;在效能,開源,自動化測試方面有非常豐富的經驗...

爬蟲入門表示式抓取糗事百科的段子3.0

在原有基礎上,增加寫入偽造瀏覽器的UserAgent fake_user_agent: pip install fake-useragent//這個第三方庫,維護了各種主流瀏覽器的UA標識,並且會定時更新這個庫,淘汰一些過期的UA。 首先,在pycharm中安裝fake_userag

Regex初試Python下的中文表示式

0x00 前言 真的是第一次在Python上做正則表示式呀……走了好多彎路,表示自己實在是笨的不行,難得實現了個小Demo,做點備忘好了。 簡要概括一下就是:英文正則親和度蠻高的,隨意;中文,轉成U

一些我經過驗證的-有效的-表示式-JAVA

在開發中,我們經常需要對引數做驗證。需要用到一些正則表示式。這裡我整理寫我驗證過的 正則表示式。 一: /** * <p>shang</p> * <p>判斷email格式是否正確</p> */ p

表示式Python3中的表示式

介紹 \quad\quad正則表示式(Regular Expression)是一種文字模式,包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為"元字元")。 \quad\quad正則表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串(一個特殊的

java 表示式java表示式匹配圖片個數

Java 正則表示式和 Perl 的是最為相似的。 java.util.regex 包主要包括以下三個類: 1、Pattern 類: pattern 物件是一個正則表示式的編譯表示。Pattern 類沒

劍指offer面試題19:表示式匹配

題目:請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式中的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。 例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab

爬蟲入門表示式非同步爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 # 多執行緒/多程序:提高程式碼的執行效率,放在爬蟲中就是提高爬取效率。因為可以使用多個程序同時對多個頁面發起請求。 # 之前的糗事百科/51job同步執行:按照先後順序一個一個執行。 from urllib.request import urlopen from ur

爬蟲入門表示式同步爬取人人車車輛資訊1.0

# 爬取人人車車車輛資訊。 from urllib.request import urlopen from urllib.error import HTTPError import re, sqlite3 class RRCSpider(object): """ 人人車爬蟲類

爬蟲入門表示式抓取白敬亭貼吧某個帖子下的圖片2.0

在原有基礎上新增異常處理模組,防止訪問正則表示式提取的東西的時候出現異常 修改def getImg (html)函式 def getImg(html): #此處修改 for imgurl in imglist: try: url

爬蟲入門表示式抓取糗事百科的段子2.0

在原有基礎上,增加寫入資料庫操作和網頁翻頁操作 import sqlite3, re from urllib.request import Request, urlopen class DBTool(object): """ 將資料儲存到資料庫的工具類,主要負責資料庫

爬蟲入門表示式Json抓取CSDN最新文章

爬取csdn文章的JSON資料 資料庫分為關係型資料庫和關係型資料庫,關係型資料庫需要通過建立表與表之間的關係來進行資料的儲存和查詢,比如一對一、一對多、多對多關係,表與表之間的關係比較緊密。而非關係型資料庫中,表與表之間是不存在關聯的,每一個表都是獨立儲存資料的。 mongodb屬於非

表示式-基礎

前言    之前總是能看到好多這樣的程式碼 ^([0-9]\d{16}[09Xx]|[1-9]\d{14})$ 斜槓加數字加字母,看起來都很頭疼。於是就上網找資料瞭解了一下,也算是一個小小的入門。

表示式自動生成各類程式碼

1.開啟線上正則網址: https://regex101.com/   2.輸入需要正則的內容和正則表示式: 第一行輸入正則表示式;第二行輸入需要匹配的文字。   3.輸入完後點擊“code generator” 選擇自己需要的開發語言,自動生成

leetcode10. Regular Expression Matching表示式匹配

思維: 若p為空,若s也為空,返回true,反之返回false 若p的長度為1,若s的長度也為1,且相同或者p為’.’,那麼返回true,否則返回false; 若p的第二格字元不為*,且s是空的,那返回false,如果s不為空,且第一個字元相同,那麼開始呼叫

表示式——限制只能輸入數字和小數點及位數

      在專案中,特殊字元的輸入限制屢見不鮮,可以說,對字元輸入的限制,已經是一個程式猿的基本功。常見的字元輸入限制有很多型別,如:只能輸入漢字;只能輸入數字和小數點;只能輸入英文字母等。。。       今天,和大家分享一個比較基本的特殊字元輸入限制的通用方法:只能

轉載萬用字元與表示式

字元匹配 .:匹配任意單個字元 *:匹配其前面一個字元出現任意次 ?:匹配其前面的字元1次或0次 +:匹配其前面一個字元出現至少一次(在擴充套件正則表示式中) 位置匹配 ^:錨定行首 $:錨定行尾 \<或\b:錨定詞首,其後面的任意字元必須作為單