1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. '''Python 字符串操作
  4. string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等
  5. @author: HK
  6. '''
  7. if __name__ == '__main__':
  8. s = ' s dfg hjk,大 家好,。:?-_+0 '
  9. #去两边空格及指定符号
  10. print(s.strip())#两边都替换
  11. # Return a copy of the string S with leading and trailing
  12. # whitespace removed.
  13. # If chars is given and not None, remove characters in chars instead.
  14. print(s.lstrip('s'))#左替换
  15. print(s.rstrip('_+0 '))#右替换
  16. #复制字符串,类似C语言中的strcpy(sStr1,sStr2)
  17. sStr1 = 'strcpy'
  18. sStr2 = sStr1
  19. sStr1 = 'strcpy2'
  20. print(sStr2,sStr1,sStr2,sStr1)
  21. #连接字符串,类似C语言中的strcat(sStr1,sStr2)
  22. sStr1 = 'strcat'
  23. sStr2 = 'append'
  24. sStr1 += sStr2
  25. print(sStr1)
  26. #查找字符,类似C语言中的strchr(sStr1,sStr2)
  27. sStr1 = 'strchr'
  28. sStr2 = 'tr'#< 0 为未找到
  29. nPos = sStr1.index(sStr2)
  30. print(nPos)
  31. #比较字符串,类似C语言中的strcmp(sStr1,sStr2),py3中取消了cmp函数cmp(sStr1,sStr2),对于int可以用表达式(a > b) - (a < b)代替cmp(a,b)
  32. sStr1 = 'strchr'
  33. sStr2 = 'strch'
  34. print((sStr1 == sStr2))
  35. #扫描字符串是否包含指定的字符,类似C语言中的strspn(sStr1,sStr2)
  36. sStr1 = ''#sStr1 and chars both in sStr1 and sStr2
  37. sStr2 = ''
  38. print(sStr1.count(sStr2)>0)
  39. print('abcde'.find('bcd') >= 0)
  40. #字符串长度类似C语言中的strlen(sStr1)
  41. sStr1 = 'strlen'
  42. print(len(sStr1))
  43. #将字符串中的大小写转换,类似C语言中的strlwr(sStr1)
  44. sStr1 = 'JCstrlwr'
  45. print(sStr1.upper())
  46. sStr1 = sStr1.lower()
  47. print(sStr1)
  48. #追加指定长度的字符串,类似C语言中的strncat(sStr1,sStr2,n)
  49. sStr1 = ''
  50. sStr2 = 'abcdef'
  51. n = 3
  52. sStr1 += sStr2[0:n]
  53. print(sStr1)
  54. #字符串指定长度比较,类似C语言中的strncmp(sStr1,sStr2,n)
  55. sStr1 = ''
  56. sStr2 = '123bc'
  57. n = 3
  58. print((sStr1[0:n]==sStr2[0:n]))
  59. #复制指定长度的字符,类似C语言中的strncpy(sStr1,sStr2,n)
  60. sStr1 = ''
  61. sStr2 = ''
  62. n = 3
  63. sStr1 = sStr2[0:n]
  64. print(sStr1)
  65. #将字符串前n个字符替换为指定的字符,类似C语言中的strnset(sStr1,ch,n)
  66. sStr1 = ''
  67. ch = 'r'
  68. n = 3
  69. sStr1 = n * ch + sStr1[n:]
  70. print(sStr1)
  71. #扫描字符串,类似C语言中的strpbrk(sStr1,sStr2)
  72. sStr1 = 'cekjgdklab'
  73. sStr2 = 'gka'
  74. nPos = -1
  75. for c in sStr1:
  76. if c in sStr2:
  77. nPos = sStr1.index(c)
  78. break
  79. print(nPos)#sStr1中第几个字符开始包含sStr2中的字符
  80. #翻转字符串,类似C语言中的strrev(sStr1)
  81. sStr1 = 'abcdefg'
  82. sStr1 = sStr1[::-1]
  83. print(sStr1)
  84. #查找字符串,类似C语言中的strstr(sStr1,sStr2)
  85. sStr1 = 'abcdefg'
  86. sStr2 = 'cde'
  87. print(sStr1.find(sStr2))#sStr1中从那个下标开始包含sStr2
  88. #分割字符串,类似C语言中的strtok(sStr1,sStr2)
  89. sStr1 = 'ab,cde,fgh,ijk'
  90. sStr2 = ','
  91. sStr1 = sStr1[sStr1.find(sStr2) + 1:]
  92. print(sStr1)#分割一次!或者
  93. s = 'ab,cde,fgh,ijk'
  94. print(s.split(','))#全局分割
  95. #连接字符串
  96. delimiter = ','
  97. mylist = ['Brazil', 'Russia', 'India', 'China']
  98. print(delimiter.join(mylist))
  99. #PHP 中 addslashes 的实现,防止SQL注入攻击
  100. def addslashes(s):
  101. d = {'"':'\\"', "'":"\\'", "\0":"\\\0", "\\":"\\\\"}
  102. return ''.join(d.get(c, c) for c in s)#D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
  103. #可以用return '$'.join(d.get(c, c) for c in s)做测试
  104. s = '''John 'Johny' Doe (a.k.a. "Super Joe")\ break'''+' and \0'+'\t end'
  105. print(s)
  106. print(addslashes(s))
  107. #只显示字母与数字
  108. def OnlyCharAndNum(s,oth=''):
  109. s2 = s.lower();
  110. fomart = 'abcdefghijklmnopqrstuvwxyz0123456789'
  111. for c in s2:
  112. if not c in fomart:
  113. s = s.replace(c,'');
  114. return s;
  115.  
  116. print(OnlyCharAndNum("a000 aa-b"))
  117. #截取字符串
  118. sStr = ''
  119. print(sStr[0:3])#截取第一位到第三位的字符
  120. print(sStr[:])#截取字符串的全部字符
  121. print(sStr[6:])#截取第七个字符到结尾
  122. print(sStr[:-3])#截取从头开始到倒数第三个字符之前
  123. print(sStr[2])#截取第三个字符
  124. print(sStr[-1])#截取倒数第一个字符
  125. print(sStr[::-1])#创造一个与原字符串顺序相反的字符串
  126. print(sStr[-3:-1])#截取倒数第三位与倒数第一位之前的字符
  127. print(sStr[-3:])#截取倒数第三位到结尾
  128. print(sStr[:-8:-1])#逆序截取,从最后一个倒数截取至倒数第8个字符‘2’步长为1
  129. print(sStr[:-8:-2])#逆序截取,从最后一个倒数截取至倒数第8个字符‘2’步长为2
  130. print(sStr[:-8:-5])#逆序截取,从最后一个倒数截取至倒数第8个字符‘2’步长为2
  131. #python 字符串替换2种方法:1用字符串本身的方法;2用正则来替换字符串
  132. a = 'hello word'
  133. #把a字符串里的word替换为python,1用字符串本身的replace方法
  134. print(a.replace('word','python'))#输出的结果是hello python
  135. #2用正则表达式来完成替换:
  136. import re
  137. reR = r'[wor]d' #perl写法
  138. strinfo = re.compile(reR) #编译后运行速度更快
  139. b = strinfo.sub('python',a)
  140. print(b)#输出hello wopython

[No000078]Python3 字符串操作的更多相关文章

  1. python3字符串操作

    python3字符串操作 x = 'abc' y = 'defgh' print(x + y) #x+y print(x * ) #x*n print(x[]) #x[i] print(y[:-]) ...

  2. python3 字符串操作相关函数

    整理自python基础|菜鸟教程 感谢菜鸟教程提供的优质资源! 1.capitalize() 将字符串的第一个字符转换为大写 实例 以下实例展示了capitalize()方法的实例: #!/usr/b ...

  3. python3字符串操作总结

    字符串截取  >>>s = 'hello' >>>s[0:3] 'he' >>>s[:] #截取全部字符 'hello' 消除空格及特殊符号 s. ...

  4. Python3 字符串操作

    截掉指定字符串 # 截掉指定字符串 string.strip("what you want to delete") #截掉字符串左边的空格 string.lstrip() #截掉字 ...

  5. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  6. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  7. Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  8. Python3学习之路~2.3 字符串操作

    字符串操作 特性:不可修改 name="my \tname is alex" print(name.capitalize()) #首字母变大写 print('Alex LI'.ca ...

  9. python3.0 day02 列表、元组 、字典、字符串操作

    1.列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作,类似于其他语言中的数组. 定义列表 names = ['Lioa',"Tenglan ...

随机推荐

  1. [函数] Delphi FMX Windows 取得下载 Downloads 目录

    在 Firemonkey 提供了一个跨平台的函数 TPath.GetDownloadsPath 来取得该平台的下载目录,但是非常奇怪的是,在 Windows 平台下,取得的下载目录确是: C:\Use ...

  2. PHP页面跳转(PHP笔记)

    目前学习到三种方法: 1.调用js跳转 2.header()跳转 3.调用HTML方法实现 因为一直在自己学习没有进入项目,并不知道哪个更常使用. 调用js跳转. <?php //这里是跳转方法 ...

  3. MySQL中优化sql语句查询常用的30种方法

      1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...

  4. 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

    为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...

  5. 《javascript面向对象精要》读书笔记

    <javascript面向对象精要> 买这本书的原因主要是因为作者,Nicholas C. Zakas 牛X闪闪的js专家,读过js高程的应该都知道他,而这本书是他的最新力作,感觉也是js ...

  6. 用原生javascript实现在页面动态显示时间

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>js ...

  7. xp系统下硬盘安装centos6.5

    引言: 电脑系统是Windows XP,电脑没有光驱.手头没有U盘.没有移动硬盘.电脑主板不支持U盘启动,在这种情况下想安装CentOS 6.0,有木有办法? 答案:有办法,请看下面教程! 必备工具: ...

  8. Linux文件和目录权限详细讲解

    转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...

  9. Java异常之自定义异常

    哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...

  10. couchDB文档

    每个文档都是自包含的数据单元,是一系列数据项的集合. 每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串.数字和日期等:也可以是复杂的类型,如有序列表和关联对象. 每个文档都有一个全 ...