案例:

[转]Python 字符串操作实现代码(截取/替换/查找/分割),python字符串

原文地址:

ps:好久没更新python代码了,这次用到了字符串,转来看看

Python 截取字符串使用
变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

 

复制代码 代码如下:
# 例1:字符串截取
str = ‘12345678’
print str[0:1]
>> 1   # 输出str位置0开始到位置1以前的字符
print str[1:6]  
>> 23456   # 输出str位置1开始到位置6以前的字符
num = 18
str = ‘0000’ + str(num) # 合并字符串
print str[-5:]  # 输出字符串右5位
>> 00018   

 

Python 替换字符串使用
变量.replace(“被替换的内容”,”替换后的内容”[,次数]),替换次数可以为空,即表示替换所有。要注意的是使用replace替换字符串后仅为临时变量,需重新赋值才能保存。

 

复制代码 代码如下:
# 例2:字符串替换
str = ‘akakak’
str = str.replace(‘k’,’ 8′) # 将字符串里的k全部替换为8
print str
>> ‘a8a8a8’  # 输出结果

 

Python 查找字符串使用
变量.find(“要查找的内容”[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始算,如果每找到则返回-1。

 

复制代码 代码如下:
# 例3:字符串查找
str = ‘a,hello’
print str.find(‘hello’) # 在字符串str里查找字符串hello
>> 2   # 输出结果

 

Python 分割字符串使用
变量.split(“分割标示符号”[分割次数]),分割次数表示分割最大次数,为空则分割所有。

例4:字符分割

 

复制代码 代码如下:
str = ‘a,b,c,d’
strlist = str.split(‘,’) # 用逗号分割str字符串,并保存到列表
for value in strlist: # 循环输出列表值
    print value
>> a   # 输出结果
>> b
>> c
>> d

字符串操作实现代码(截取/替换/查找/分割),python字符串
原文地址:
ps:好久没更新python代码了,这次用到…

Python
下字符串的提取、分割与删除

       把某个字符串依据分隔符拆分,该字符包含不同的多种分隔符,如下

对于文本来讲,提取、分割和删除是我们用的较多的操作。

       s = ’12;;7.osjd;.jshdjdknx+’

文本我们可以看成是字符串对象。首先说到的是 in 和 not in操作。

       其中 ; . + 是分隔符

字符串的提取

有哪些解决方案?

in 和
not in 判定是否包含字符

方法1:通过str.split()方法,每次处理一个分隔符

我们可以使用 in 或者 not in 来检查一个字符串是否是另一个字符串的一部分。

#!/usr/bin/python3


def go_split(s, symbol):
  result = [s]
  for i in symbol:
    median = []
    # 普通方法
    # for x in result:
    #   median.extend(x.split(i)

    # 列表解析
    # [median.extend(y.split(i)) for y in result if y]

    # map高阶函数,map生成可迭代对象
    for z in map(lambda x: x.split(i), result):
      median.extend(z)

    # 以上三个方法都可以解决问题
    result = median

  # 去除空字符串
  return [x for x in result if x]

if __name__ == "__main__":
  # 定义初始字符串
  s = '12;;7.osjd;.jshdjdknx+'
  # 定义分隔符
  symbol = ';./+'

  result = go_split(s, symbol)
  print(result)

使用方法:

方法2:通过re.split()方法,一次性拆分所有字符串,推荐

关键字
[not] in 字符对象 #判定是否存在所示关键字

#!/usr/bin/python3

import re


def go_split(s, symbol):
  # 拼接正则表达式
  symbol = "[" + symbol + "]+"
  # 一次性分割字符串
  result = re.split(symbol, s)
  # 去除空字符
  return [x for x in result if x]


if __name__ == "__main__":
  # 定义初始字符串
  s = '12;;7.osjd;.jshdjdknx+'
  # 定义分隔符
  symbol = ';./+'

  result = go_split(s, symbol)
  print(result)

yzc579亚洲城官网 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

in 和 not in 主要调用了 str 对象的 __contains__ 方法。

您可能感兴趣的文章:

  • Python实现简单拆分PDF文件的方法
  • Python映射拆分操作符用法实例
  • Python字典数据对象拆分的简单实现方法
  • python分割和拼接字符串
  • Python
    字符串操作实现代码(截取/替换/查找/分割)
  • 在Python中用split()方法分割字符串的使用介绍
  • python按照多个字符对字符串进行分割的方法
  • Python
    字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
  • Python
    cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例

如果 字符串2 包含 字符串1 则 “字符串1 in 字符串2” 返回 True

我们看下 __contains__ 方法的描述,使用了第2章说过的 ? 帮助。

yzc579亚洲城官网 2

从帮助中我们看到 uname.__contains__() 等价于 ‘Linux’ in uname

find()
和 index() 判定包含字符的位置

既然可以判定是否包含字符,包含字符的位置是下一个需要知道的。

字符对象.find(‘关键字’)
字符对象.index(‘关键字’) #查找关键字处于字符串的位置

两个函数都是查询关键字位置的,区别在于返回值不同。

请看例子

yzc579亚洲城官网 3

在关键字能查找到的情况下 , index() 和
find() 返回值是相同的,但是在找不到的情况下,find()返回-1 而 index()
抛出一个错误。

startswith()
和 endswith() 判定字符串是否以特定子串开始或者结束

这个方法返回的是T/F,对于验证路由器备份,或者log日志判断第一列等操作还是有意义的。

字符对象.startswith(‘关键字’)
字符对象.endswith(‘关键字’)

例子:

yzc579亚洲城官网 4

upper()
和 lower() 忽略大小写

这两个方法非常有用,主要用于对两个字符串比较但是不想考虑其大小写时。

字符对象.upper()
字符对象.lower()

例子:

yzc579亚洲城官网 5

对于用户名密码或者验证码输入判定时很有效。

==================================================

字符串的分割

既然可以判定是否包含字符,包含字符的位置是下一个需要知道的。

字符对象[位置1:位置2]yzc579亚洲城官网,
#切分字符串

这其实是python中一个很典型的用法。我们可以把 “:” 看成希望得到的子串。

位置1为0 的时候可以写成 [: 位置2]

位置的部分是一个整数,可以为负数。下面是位置的标识。

-5 -4
-3 -2 -1

L i n u x

0 1 2
3 4

[1:4] 截取的是 1 2 3位置的字符,也就是
inu 。不包括4的字符x 。

我们看例子

yzc579亚洲城官网 6

日常工作中我们可以依此来截取个 IP 地址或者log日志时间什么的。

还有一种是步长截取,用的不是很多。中间有2个冒号 [ 1:: 2 ]

L i n u x

01 23 4

意思是 从1位开始,每隔2个步长截取一个字符。答案是 iu

split()
根据指定的分隔符对字符串提取

这个方法的典型用法是:把希望作为分隔符的字符串作为参数传递给它。

一般来说分隔符是一个单个字管道符,像 “,” ” | ” 诸如此类。

字符对象.split(‘分隔符’,[应用几次])
#以指定分隔符分割字符串

yzc579亚洲城官网 7

我们用逗号进行分割,如果第2个参数输入数字,代表分割次数。

调用的话也很简单。当作列表调用。

如果要以行来分割的话。

splitlines()
可以做到按行分割,但是一般来说行处理不用行分割的方法。这里不赘述了。

==================================================

字符串的删除

lstrip()
rstrip() strip() 删除空白或字符

这3个方法本来的意思是删除前导空白 结尾空白 或者
前后空白。但是使用参数删除任意字符。

lstrip() 删除前导空白或者字符

rstrip() 删除结尾空白或者字符

strip() 删除前后的空白或者字符

注:所有strip()
方法会创建或者返回新的字符串对象,不会修改原有对象。

使用方法:

字符对象.strip([‘关键字’])
#删除空白或者关键字

yzc579亚洲城官网 8

我们看到了删除空白的情况,之后看看删除字符的。

yzc579亚洲城官网 9

In[19] 显示了当我们关键字是
“<>”的时候,并不是顺序匹配 <> 而是删除了全部的 < 和
>

下面一个例子更明显。

yzc579亚洲城官网 10

虽然是删除了前后的字符,但是中间的字符是不会被删除的。

yzc579亚洲城官网 11

中间的 e 还在。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注