- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
-
-
- 去空格及特殊符号
- s.strip() .lstrip() .rstrip(',')
-
- 复制字符串
- #strcpy(sStr1,sStr)
- sStr= 'strcpy'
- sStr = sStr
- sStr= 'strcpy'
- print sStr
-
- 连接字符串
- #strcat(sStr1,sStr)
- sStr= 'strcat'
- sStr = 'append'
- sStr+= sStr
- print sStr
-
- 查找字符
- #strchr(sStr1,sStr)
- sStr= 'strchr'
- sStr = 's'
- nPos = sStr1.index(sStr)
- print nPos #返回该char在string中的位置
-
- 比较字符串
- #strcmp(sStr1,sStr)
- sStr= 'strchr'
- sStr = 'strch'
- print cmp(sStr1,sStr) #不同返回1, 相同返回0
-
- 扫描字符串是否包含指定的字符
- #strspn(sStr1,sStr)
- sStr1= '1345678'
- sStr2 = '456'
- #sStrand chars both in sStrand sStr
- print sStr1.find(sStr2) #找到返回首字母位置,失败返回-1
-
- 字符串长度
- #strlen(sStr1)
- sStr= 'strlen'
- print len(sStr1)
-
- 将字符串中的大小写转换
- #strlwr(sStr1)
- sStr= 'JCstrlwr'
- sStr= sStr1.upper()
- #sStr= sStr1.lower()
- print sStr
-
- 追加指定长度的字符串
- #strncat(sStr1,sStr,n)
- sStr= '1345'
- sStr = 'abcdef'
- n = 3
- sStr+= sStr[0:n]
- print sStr
-
- 字符串指定长度比较
- #strncmp(sStr1,sStr,n)
- sStr= '1345'
- sStr = '13bc'
- n = 3
- print cmp(sStr1[0:n],sStr[0:n]) #相同返回0,
-
- 复制指定长度的字符
- #strncpy(sStr1,sStr,n)
- sStr= ''
- sStr = '1345'
- n = 3
- sStr= sStr[0:n]
- print sStr
-
- 将字符串前n个字符替换为指定的字符
- #strnset(sStr1,ch,n)
- sStr= '1234'
- ch = 'r'
- n = 3
- sStr= n * ch + sStr1[3:]
- print sStr # result: rrr4
-
- 扫描字符串
- #strpbrk(sStr1,sStr)
- sStr= 'cekjgdklab'
- sStr = 'gka'
- nPos = -1
- for c in sStr1:
- if c in sStr:
- nPos = sStr1.index(c)
- break
- print nPos
-
- 翻转字符串
- #strrev(sStr1)
- sStr= 'abcdefg'
- sStr= sStr1[::-1]
- print sStr
-
- 查找字符串
- #strstr(sStr1,sStr)
- sStr= 'abcdefg'
- sStr = 'cde'
- print sStr1.find(sStr)
-
- 分割字符串
- #strtok(sStr1,sStr)
- sStr= 'ab,cde,fgh,ijk'
- sStr = ','
- sStr= sStr1[sStr1.find(sStr) + 1:]
- print sStr
- 或者
- 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=''):
- s = s.lower();
- fomart = 'abcdefghijklmnopqrstuvwxyz013456789'
- for c in s:
- if not c in fomart:
- s = s.replace(c,'');
- return s;
- print(OnlyStr("a000 aa-b"))
分割字符串
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s = ";".join(li)
>>> s
'server=mpilgrim;uid=sa;database=master;pwd=secret'
>>> s.split(";")
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s.split(";", 1)
['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
|
split 与 join 正好相反,它将一个字符串分割成多元素 list。注意,分隔符 (“;”) 被完全去掉了,它没有在返回的 list 中的任意元素中出现。 |
|
split 接受一个可选的第二个参数,它是要分割的次数。(“哦,可选参数……”,您将会在下一章中学会如何在您自己的函数中使用它。) |
- 自然字符串
如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r
或R
来指定。例如r"Newlines are indicated by \n"
。
- Unicode字符串
Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u
或U
。例如,u"This is a Unicode string."
。
记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。