導航:首頁 > 編程語言 > python精確匹配字元串

python精確匹配字元串

發布時間:2024-01-23 15:34:33

『壹』 python中正則表達式的匹配規則總結

其他關於Python的總結文章請訪問: https://www.jianshu.com/nb/47435944

正則表達式用來匹配字元串,在python中可以使用 re 模塊來完成,本篇做一個對正則表達式的匹配規則的總結

在上述的精確匹配後可以跟上一些符號來進行模糊的匹配:

可以使用中括弧的形式進行范圍匹配,中括弧表達式後邊可以跟上上述模糊匹配的符號來表示數量

多個條件可以 緊跟著寫在同一個中括弧中 ,比如:
[a-zA-Z] :匹配一個大、小寫字母

『貳』 python正則表達式是什麼

Python正則表達式是一個特殊的字元序列,是一種用來匹配字元串的強有力的武器。它的設計思想是用一種描述性的語言來給字元串定義一個規則,凡是符合規則的字元串,我們就認為它「匹配」了,否則,該字元串就是不合法的。

判斷一個字元串是否是合法的Email的方法是:

1、創建一個匹配Email的正則表達式;

2、用該正則表達式去匹配用戶的輸入來判斷是否合法。

因為正則表達式也是用字元串表示的,所以,要首先了解如何用字元來描述字元。

在正則表達式中,如果直接給出字元,就是精確匹配。用 d 可以匹配一個數字, w 可以匹配一個字母或數字。

『叄』 請教Python中匹配IP的正則表達式

下面是IPv4的IP正則匹配表達式

importre
#簡單的匹配給定的字元串是否是ip地址,下面的例子它不是IPv4的地址,但是它滿足正則表達式
ifre.match(r"^(?:[0-9]{1,3}.){3}[0-9]{1,3}$","272.168,1,1"):
print"IPvaild"
else:
print"IPinvaild"
#精確的匹配給定的字元串是否是IP地址
ifre.match(r"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$","223.168.1.1"):
print"IPvaild"
else:
print"IPinvaild"
#簡單的從長文本中提取中提取ip地址
string_ip="isthis289.22.22.22ip?
result=re.findall(r"(?:[0-9]{1,3}.){3}[0-9]{1,3}",string_ip)
ifresult:
printresult
else:
print"recannotfindip"
#精確提取IP
result=re.findall(r"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",string_ip):
ifresult:
printresult
else:
print"recannotfindip"

下面是IPv6的正則匹配表達式

string_IPv6="1050:0:0:0:5:600:300c:326b"
#匹配是否滿足IPv6格式要求,請注意例子里大小寫不敏感
ifre.match(r"^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$",string_IPv6,re.I):
print"IPv6vaild"
else:
print"IPv6invaild"
#提取IPv6,例子里大小寫不敏感
result=re.findall(r"(?<![:.w])(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}(?![:.w])",string_IPv6,re.I)
#列印提取結果
printresult

『肆』 python選擇結構分為哪幾類每一類的語法格式怎麼書寫

分三類:單分支,雙分支,多分支。
輸出
用print()在括弧中加上字元串,就可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:

>>> print('hello, world')
print()函數也可以接受多個字元串,用逗號「,」隔開,就可以連成一串輸出:

>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog
print()會依次列印每個字元串,遇到逗號「,」會輸出一個空格

print()也可以列印整數,或者計算結果:

>>> print(300)
300
>>> print(100 + 200)
300
因此,我們可以把計算100 + 200的結果列印得更漂亮一點:

>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300
輸入
Python提供了一個input(),可以讓用戶輸入字元串,並存放到一個變數里。比如輸入用戶的名字:

>>> name = input()
Michael
當你輸入name = input()並按下回車後,Python互動式命令行就在等待你的輸入了。這時,你可以輸入任意字元,然後按回車後完成輸入。

輸入完成後,不會有任何提示,Python互動式命令行又回到>>>狀態了。那我們剛才輸入的內容到哪去了?答案是存放到name變數里了。可以直接輸入name查看變數內容:

>>> name
'Michael'
結合輸入輸出

name = input()
print('hello,', name)
數據類型

整數
Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。

計算機由於使用二進制,所以,有時候用十六進製表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮點數
浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。

字元串
字元串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'只有a,b,c這3個字元。如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I,',m,空格,O,K這6個字元。

如果字元串內部既包含'又包含"怎麼辦?可以用轉義字元\來標識,比如:

'I\'m \"OK\"!'
表示的字元串內容是:

I'm "OK"!
轉義字元\可以轉義很多字元,比如\n表示換行,\t表示製表符,字元\本身也要轉義,所以\\表示的字元就是\,可以在Python的互動式命令行用print()列印字元串看看:

>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\
如果字元串裡面有很多字元都需要轉義,就需要加很多\,為了簡化,Python還允許用r''表示''內部的字元串默認不轉義,可以自己試試:

>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
如果字元串內部有很多換行,用\n寫在一行里不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容,可以自己試試:

>>> print('''line1
... line2
... line3''')
line1
line2
line3
上面是在互動式命令行內輸入,注意在輸入多行內容時,提示符由>>>變為...,提示你可以接著上一行輸入,注意...是提示符,不是代碼的一部分:

┌────────────────────────────────────────────────────────┐
│Command Prompt - python _ □ x │
├────────────────────────────────────────────────────────┤
│>>> print('''line1 │
│... line2 │
│... line3''') │
│line1 │
│line2 │
│line3 │
│ │
│>>> _ │
│ │
│ │
│ │
└────────────────────────────────────────────────────────┘
當輸入完結束符```和括弧)後,執行該語句並列印結果。

如果寫成程序並存為.py文件,就是:

print('''line1
line2
line3''')
多行字元串'''...'''還可以在前面加上r使用

布爾值
布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來:

>>> True
True
not運算是非運算,它是一個單目運算符,把True變成False,False變成True:

>>> not True
False
空值
空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

此外,Python還提供了列表、字典等多種數據類型,還允許創建自定義數據類型,我們後面會繼續講到。

變數
變數的概念基本上和初中代數的方程變數是一致的,只是在計算機程序中,變數不僅可以是數字,還可以是任意數據類型。

變數在程序中就是用一個變數名表示了,變數名必須是大小寫英文、數字和_的組合,且不能用數字開頭,比如:

a = 1
變數a是一個整數。

t_007 = 'T007'
變數t_007是一個字元串。

Answer = True
變數Answer是一個布爾值True。

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變數,同一個變數可以反復賦值,而且可以是不同類型的變數

這種變數本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變數時必須指定變數類型,如果賦值的時候類型不匹配,就會報錯。

最後,理解變數在計算機內存中的表示也非常重要。當我們寫:

a = 'ABC'
時,Python解釋器幹了兩件事情:

在內存中創建了一個'ABC'的字元串;
在內存中創建了一個名為a的變數,並把它指向'ABC'。
也可以把一個變數a賦值給另一個變數b,這個操作實際上是把變數b指向變數a所指向的數據

常量
所謂常量就是不能變的變數,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變數名表示常量:

PI = 3.14159265359
但事實上PI仍然是一個變數,Python根本沒有任何機制保證PI不會被改變,所以,用全部大寫的變數名表示常量只是一個習慣上的用法,如果你一定要改變變數PI的值,也沒人能攔住你。

最後解釋一下整數的除法為什麼也是精確的。在Python中,有兩種除法,一種除法是/:

>>> 10 / 3
3.3333333333333335
/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:

>>> 9 / 3
3.0
還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數:

>>> 10 // 3
3
你沒有看錯,整數的地板除//永遠是整數,即使除不盡。要做精確的除法,使用/就可以。

因為//除法只取結果的整數部分,所以Python還提供一個余數運算,可以得到兩個整數相除的余數:

>>> 10 % 3
1
無論整數做//除法還是取余數,結果永遠是整數,所以,整數運算結果永遠是精確的。

閱讀全文

與python精確匹配字元串相關的資料

熱點內容
linux字元設備驅動程序 瀏覽:57
全排列演算法java 瀏覽:465
中國銀行app轉賬電子回單在哪裡 瀏覽:51
操作簡單的程序員 瀏覽:598
數值積分演算法求pi 瀏覽:18
按鈕怎麼連命令方塊 瀏覽:909
房貸還清後不解壓能貸款嗎 瀏覽:36
程序員哄老婆開心技術 瀏覽:672
oracle自動備份壓縮文件 瀏覽:853
遵義人字形加密網帶 瀏覽:255
寧波人社在哪裡下載app 瀏覽:92
好噠商戶app下載在哪裡下載 瀏覽:609
廣發兌星巴克是在app哪裡操作 瀏覽:783
linuxgetline 瀏覽:215
app的懸浮窗許可權在哪裡設置 瀏覽:686
51單片機定時器溢出標志 瀏覽:373
單片機燒寫方法圖解 瀏覽:399
遍歷輸出java 瀏覽:551
貴妃app直播哪裡下載 瀏覽:273
android手機屏幕寬度和高度 瀏覽:816