python字符串

Python字符串

1.支持序列操作

eg:

s='abcd'
len(s)  #4 s字符串可以當成序列
a=2
s[a] #c,其索引也支持表達式
s[-1] #d 反向索引
s(0:3) #分片操作,返回 abc,也支持負索引分片
#還有加號合併,重複

2.字符串的不可變性

在上述的操作中,沒有對原字符串做任何改變(包括加號合併,重複),因爲python字符串具有==不可變性==,即是在創建後不能就地改變,但是可以通過建立一個新的字符串以同一個變量名命名。

s='abcd' 
s[0]=1 #出錯
a=s+'z' #s='abcd' a='abcdz'  #注意此時s是不會變的
s=s+'k' #s='abcdk'

此外,具有不可變性的還有==數字==,==元組==

3.多行的字符串

python允許使用三個引號(單引號或雙引號)包括多行字符串常量,並在每行的末尾增加換行符。
eg:
這裏寫圖片描述
可見,在每行的結束都加了一個換行符\n
,多行的字符創在html裏很有用

4.模式匹配

python中有個re模塊用於模式匹配,主要用於對字符串進行分割,查找和替換等操作,即是正則表達式
在使用時先導入re模塊.
常用的方法
- re.match(pattern, string, flags=0): re.match 嘗試從字符串的==起始位置==匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。
- re.search(pattern, string, flags=0):re.search 掃描整個字符串並返回第一個成功的匹配。

區別:re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。

eg:

>>> match=re.match('Hello[\t]*(.*)world','Hello Python world')
>>> match.group(0)
'Hello Python world'
>>> match.group(1)
' Python '
# Hello[\t]*(.*)world匹配Hello開頭,加多個製表符,多個非換行符字符 (.*) 表示一個組,非換行符組成的組,故結果中有 match.group(1)即是匹配到的組 python,結果中的第一個組即爲匹配到的結果。
關於組

正則中捕獲分組的概念,其實就是一個括號內的內容 如 “(\d)\d” 而”(\d)” 這就是一個捕獲分組,可以對捕獲分組進行 後向引用 (如果後而有相同的內容則可以直接引用前面定義的捕獲組,以簡化表達式) 如(\d)\d\1 這裏的”\1”就是對”(\d)”的後向引用

eg:

match=re.match('/(.*)/(.*)/(.*)','/usr/home/lumberjack');

此處的正則表達式定義了三個組,故匹配到的結果應該有四個組
- 整個結果
- 組1
- 組2
- 組3

故其結果爲:

>>> match.group(0)
'/usr/home/lumberjack'
>>> match.group(1)
'usr'
>>> match.group(2)
'home'
>>> match.group(3)
'lumberjack'

關於正則表達式推薦一篇博客,這裏

發佈了42 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章