Python字串操作大總結,string替換、刪除、擷取、複製、連

pythontab發表於2014-03-24

今天給大家總結一下字串的所有操作,string替換、刪除、擷取、複製、連線、比較、查詢、包含、大小寫轉換、分割等

去空格及特殊符號

s.strip().lstrip().rstrip(',')

複製字串

#strcpy(sStr1,sStr2)

sStr1 = 'strcpy'

sStr2 = sStr1

sStr1 = 'strcpy2'

print sStr2

連線字串

#strcat(sStr1,sStr2)

sStr1 = 'strcat'

sStr2 = 'append'

sStr1 += sStr2

print sStr1

查詢字元

#strchr(sStr1,sStr2)

# < 0 為未找到

sStr1 = 'strchr'

sStr2 = 's'

nPos = sStr1.index(sStr2)

print nPos

比較字串

#strcmp(sStr1,sStr2)

sStr1 = 'strchr'

sStr2 = 'strch'

print cmp(sStr1,sStr2)

掃描字串是否包含指定的字元

#strspn(sStr1,sStr2)

sStr1 = '12345678'

sStr2 = '456'

#sStr1 and chars both in sStr1 and sStr2

print len(sStr1 and sStr2)

字串長度

#strlen(sStr1)

sStr1 = 'strlen'

print len(sStr1)

將字串中的大小寫轉換

#strlwr(sStr1)

sStr1 = 'JCstrlwr'

sStr1 = sStr1.upper()

#sStr1 = sStr1.lower()

print sStr1

追加指定長度的字串

#strncat(sStr1,sStr2,n)

sStr1 = '12345'

sStr2 = 'abcdef'

n = 3

sStr1 += sStr2[0:n]

print sStr1

字串指定長度比較

#strncmp(sStr1,sStr2,n)

sStr1 = '12345'

sStr2 = '123bc'

n = 3

print cmp(sStr1[0:n],sStr2[0:n])

複製指定長度的字元

#strncpy(sStr1,sStr2,n)

sStr1 = ''

sStr2 = '12345'

n = 3

sStr1 = sStr2[0:n]

print sStr1

將字串前n個字元替換為指定的字元

#strnset(sStr1,ch,n)

sStr1 = '12345'

ch = 'r'

n = 3

sStr1 = n * ch + sStr1[3:]

print sStr1

掃描字串

#strpbrk(sStr1,sStr2)

sStr1 = 'cekjgdklab'

sStr2 = 'gka'

nPos = -1

for c in sStr1:

    if c in sStr2:

        nPos = sStr1.index(c)

        break

print nPos

翻轉字串

#strrev(sStr1)

sStr1 = 'abcdefg'

sStr1 = sStr1[::-1]

print sStr1

查詢字串

#strstr(sStr1,sStr2)

sStr1 = 'abcdefg'

sStr2 = 'cde'

print sStr1.find(sStr2)

分割字串

#strtok(sStr1,sStr2)

sStr1 = 'ab,cde,fgh,ijk'

sStr2 = ','

sStr1 = sStr1[sStr1.find(sStr2) + 1:]

print sStr1

#或者

s = 'ab,cde,fgh,ijk'

print(s.split(','))

連線字串

delimiter = ','

mylist = ['Brazil', 'Russia', 'India', 'China']

print delimiter.join(mylist)

PHP 中 addslashes 的實現

def addslashes(s):

    d = {'"':'\\"', "'":"\\'", "\0":"\\\0", "\\":"\\\\"}

    return ''.join(d.get(c, c) for c in s)

  

s = "John 'Johny' Doe (a.k.a. \"Super Joe\")\\\0"

print s

print addslashes(s)

只顯示字母與數字

def OnlyCharNum(s,oth=''):

    s2 = s.lower();

    fomart = 'abcdefghijklmnopqrstuvwxyz0123456789'

    for c in s2:

        if not c in fomart:

            s = s.replace(c,'');

    return s;

print(OnlyStr("a000 aa-b"))

擷取字串

str = ’0123456789′

print str[0:3] #擷取第一位到第三位的字元

print str[:] #擷取字串的全部字元

print str[6:] #擷取第七個字元到結尾

print str[:-3] #擷取從頭開始到倒數第三個字元之前

print str[2] #擷取第三個字元

print str[-1] #擷取倒數第一個字元

print str[::-1] #創造一個與原字串順序相反的字串

print str[-3:-1] #擷取倒數第三位與倒數第一位之前的字元

print str[-3:] #擷取倒數第三位到結尾

print str[:-5:-3] #逆序擷取,具體啥意思沒搞明白


相關文章