1. 程式人生 > >Python核心程式設計第二版第十五章:正則表示式(課後習題)----我的答案

Python核心程式設計第二版第十五章:正則表示式(課後習題)----我的答案

15-1.識別下列字串:“bat”,“bit”,“but”,“hat”,“hit“或”hut“。

import re
key = 'batshdajbut'
p1 = r'(bat|bit|but|hat|hit|hut)'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.groups())

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

import re
key = 'app ddd'
p1 = r'[A-Za-z]+ [ A-Za-z]+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-3.匹配用一個逗號和一個空格分開的一個單詞和一個字母

import re
key = 'app, d'
p1 = r'\w+, \w?'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

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

import re
key = 'init'
p1 = r'[A-Za-z_](\w|_)*'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-5請根據你本地關於地址的格式寫法匹配一個街道地址。

import re
key = '3120 De la Cruz Boulevard'
p1 = r'\d+(\s[A-Za-z]+)+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-6.匹配簡單的以”www.“開頭,以”.com“作結尾的Web域名。

import re
key = 'www.oddad.com'
p1 = r'\b^www..+.com$\b'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

附加題:

import re
key = 'www.oddad.edu'
p1 = r'\b^www..+(.com|.edu|.net)$\b'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-7.匹配全體Python整型的字串表示形式的集合。

import re
key = '123 323 311'
p1 = r'( *\d+ *)+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-8.匹配全體Python長整型的字串表示的集合。

import re
key = '3L 33333L 1111L'
p1 = r'( *\d+[lL] *)+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-9.匹配全體Python浮點型的字串表示形式的集合。

import re
key = '3.3 3.1 3'
p1 = r'\d+(.\d)*'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-10.匹配全體Python複數的字串表示形式的集合。

import re
key = '1+3j 3j'
p1 = r'( *\d*\+*(\dj)+ *)+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-11.匹配所有合法的電子郵箱地址。

import re
key = '[email protected]'
p1 = r'\[email protected]\w+(.com)$'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-12.匹配所有合法的Web網站地址(URL)。

import re
key = 'www.hao123.com'
p1 = r'\b^www.\w+(.com|.net|.edu)$'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-13.寫一個正則表示式,能從這個字串中提取出型別的名字。

import re

def type(string):
    p1 = r"<type '(\w+)'>"
    m = re.search(p1, string)
    if m is not None:
        return m.group(1)

print(type("<type 'int'>"))

15-14.正則表示式。請寫一個正則表示式表示標準日曆上其他三個月(十月,十一月,十二月)

import re
key = '10 11 12'
p1 = r'( *1+[0-2] *)+'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())

15-15.正則表示式。請寫出一個允許使用連字元的正則表示式,但要求連字元必須出現在正確的位置。

import re
key = '1232-111111-12345'
p1 = r'([0-9]{4}-?[0-9]{6}-?[0-9]{5})|([0-9]{4}-?[0-9]{4}-?[0-9]{4}-[0-9]{4})'
pattern1 = re.compile(p1)
matcher1 = re.search(pattern1, key)
print(matcher1.group())


相關推薦

Python核心程式設計第二表示式課後習題----答案

15-1.識別下列字串:“bat”,“bit”,“but”,“hat”,“hit“或”hut“。import re key = 'batshdajbut' p1 = r'(bat|bit|but|hat|hit|hut)' pattern1 = re.compile(p1)

python核心程式設計第二-習題--自己寫歡迎批改

第二題:操作符 1/寫一個函式,計算並返回兩個數的乘積; 2/寫一段程式碼呼叫這個函式並顯示它的結果 def ji(a,b): return a*b ji(2,6) 第三題:標準型別操作符。寫

Python核心程式設計第二數字課後習題----答案

5-1.整型。講講Python普通整型和長整型的區別。標準整型型別是最通用最基本的數字型別等價於C語言的長整型,一般以十進位制表示。長整型則是標準整型型別的超集,當需要用到比標準整型型別更大的整型時,長整型就大有作為了。在一個整型後面加上L(l也是可行的),表示整型為長整型。

shell表達式

shell正則表達式第十五章 shell正則表達式 見圖片 Shell正則表達式 正則表達式的分類 基本的正則表達式(Basic Regular Expression 又叫Basic RegEx 簡稱BREs) 擴展的正則表達式(Extended Regular Expression 又叫Extended

python核心程式設計第二練習解析

2.迴圈。編寫一個程式,讓使用者輸入3個數字:(f)rom,(t)o 和 (i)ncrement。以i為步長,從f計數到t,包括f和t。例如,如果輸入的是f==2、t==26、i==4,程式將輸出2,6,10,14,18,22,26。 # -*- coding: utf-

python核心程式設計第二 2.11

題目描述:文字輸入,功能選擇 print '請輸入相應功能的標號 1:求輸入5個數之和。2:求輸入5個數的平均值。3:將5個數大小排序。4:退出程式' a = int(raw_input()) p = True total = 0 total1 = 0 average = 0 while p:

python核心程式設計第二 2.10題目

題目描述:鍵入合適的數字,否則等到直到合適數字為止 p = True a = int(raw_input('please input a number between [0.100]:')) while p: if a>0 and a<100: print 'g

Java-Java程式設計思想 練習

練習1:// Use Holder3 with the typeinfo.pets library to show that a Holder3 that is // specified to hold a base type can also hold a derived

Python核心程式設計練習參考第一表示式

1-1 識別後續的字串:“bat”、“bit”、“but”、“hat”、“hit”或者“hut”。 答:'[bh][aiu]t' 1-2 匹配由單個空格分隔的任意單詞對,也就是姓和名。 答:'\w+\s\w+' 1-3 匹配由單個逗號和單個空白符分隔的任何單詞和單個字

Python程式設計從入門到實踐】生成資料

15-1 立方:數字的三次方被稱為其立方。請繪製一個圖形,顯示前5個整數的立方值,在繪製一個圖形,顯示前面5000個整數的立方值。 前5個整數的立方值:import matplotlib.pyplot as plt x_values = [1,2,3,4,5] y_val

python 核心程式設計第二9習題答案自寫

test 9.1 fileload = 'C:/Users/Administrator/Desktop/test/test9.1.txt' f = open(fileload,'r') for eachline in f: for ps in ea

Python核心程式設計(第二)》pdf

第1部分 Python核心 第1章 歡迎來到Python世界 1.1 什麼是Python 1.2 起源 1.3 特點 1.3.1 高階 1.3.2 面向物件 1.3.3 可升級 1.3.4 可擴充套件 1.3.5 可移植性 1.3.6 易學 1.3.7 易讀 1.3.8 易維護 1.3.9 健壯性 1.3.

Java程式設計思想 泛型

1. 泛型 “泛型”意思就是適用於許多型別。 使用泛型的目的之一: 指定容器持有什麼型別,讓編譯器確保正確性,而不是在執行期發現錯誤。 這個容器可以看成是有其他型別物件作為成員的類,而不單單只是JDK中的容器類。 2.簡單的泛型 2.1 元組

c++ primer答案

15.01 什麼是虛成員? 虛成員是基類希望派生類進行覆蓋的函式,在其成員前加關鍵字virtual,使得該成員可以實現動態繫結。 15.02 protected訪問說明符與private有何區別? private成員:即使是基類的派生類也無法直接訪問。 protected成員:基類的

程式設計珠璣】--字串用字尾陣列查詢最長不重疊的重複子串

問題:給定一個文字檔案作為輸入,查詢其中最長的重複子字串。例如:“Ask not what your country can do for you, but what you can do for y

C++ primer 練習答案

第15章 面向物件程式設計 15.3 #include <iostream> #include <string> using namespace std; class Quote { public: Quote() =

鳥哥的Linux私房菜——正規表示法

打印 全部 相關 sed 新增 class 簡介 rep .com   視頻鏈接   土豆:   B站:   本章講的是   目錄如下 1. 前言:2. 基礎正規表示法:2.1 以 grep 擷取字符串      (grep -iv i是忽略大小寫,v是反

“全棧2019”JavaUnicode與轉義字符

href idea inf 版權 下劃線 學習計劃 基礎 意義 第十五章 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”Java第十五章:Unic

演算法導論 動態規劃之棒的切割Rod Cutting

    和分治法一樣,動態規劃(Dynamic programming)是通過組合子問題的解而解決整個問題的。 其不同點在於: 1)分治法是將問題劃分成一些獨立的子問題,遞迴求解各個子問題,然後合併子問題的解而得到原問題的解 2)動態規劃使用於子問題不獨立的情況,也就是各個

Flask 教程 優化應用結構

這是Flask Mega-Tutorial系列的第十五部分,我將使用適用於大型應用的風格重構本應用。 Microblog已經是一個初具規模的應用了,所以我認為這是討論Flask應用如何在持續增長中不會變得混亂和難以管理的好時機。 Flask是一個框架,旨在