python里实现字符串替换

简介:
1
2
3
4
5
6
7
8
9
10
>>>aa = "hi"
>>>num = [ 0 , 1 , 2 , 3 , 4 , 5 ]
>>> for  in  num :
             if  i > 0 :
                 print (aa)
hi
hi
hi
hi
hi

上面这个就是实现“把某个字符串,反复出现某list里满足条件的元素次数”,这个得到的结果是一个str,如果要简化一下这段代码如下:

1
2
>>>[aa  for  in  num  if  i > 0 ]
[hi,hi,hi,hi,hi]

这里一定要有中括号,不然的话算SyntaxError: invalid syntax。得到的结果是一个list。


replace函数

一般情况下来说,对于字符串的替换,常用的都是.replace函数。replace()可以设定替换次数。

1
2
3
4
5
6
7
8
9
10
>>> aaa = "wade,james,kobe,lewis,kevin"
>>> s = aaa.replace( "james" , "curry" )
'wade,curry,kobe,lewis,kevin'
>>> type (s)
< class  'str' >
>>> champions = 'warriors,spurs,heat,heat,mavericks,lakers,lakers,celtics,spurs'
>>> champions.replace( "spurs" , "马刺队" , 1 )     #只替换一次
'warriors,马刺队,heat,heat,mavericks,lakers,lakers,celtics,spurs'
>>> champions.replace( "spurs" , "马刺队" , 2 )     #替换两次
'warriors,马刺队,heat,heat,mavericks,lakers,lakers,celtics,马刺队'

rm.sub模块

sub模块主要是字符串的针对性替换作用,在这一点上sub()和replace()的功能类似的,但是sub()支持正则表达式。使用格式是text.sub(r"要替换的内容","替换成的内容",替换范围),举个例子:

1
2
3
4
5
>>> import  re
>>>s0 = "james and wade"
>>>s1 = re.sub(r "james" , "bosh" ,s0)         #r指的是原生字符串的意思
>>> print (s1)
bosh  and  wade


sub模块支持 | 的引用,比如把上面代码修改一下:

1
2
3
4
5
>>> import  re
>>>s0 = "james and wade"
>>>s2 = re.sub(r "james|wade" , "bosh" ,s0)     # | 就是或的意思
>>> print (s2)
bosh  and  bosh

但是要注意,如果类似于linux里的或,用[]括起来的话,结果可大不相同:

1
2
3
4
5
6
>>> import  re
>>>s0 = "james and wade"
>>>s3 = re.sub(r "[james|kobe]" , "bosh" ,s0)     # 这里原来打算把james或者kobe替换成bosh
>>> print (s3)
boshboshboshboshbosh boshnd wboshdbosh  
#可以看出只要是 j a m e s k o b e这几个字母就都变成了bosh,而出现了boshnd,是应为n和d 不属于上面几个字母,所以nd保留了下来。

如果要把每一项都改,可以用[a-z],

1
2
3
4
5
>>> import  re
>>>s0 = "james and wade"
>>>s4 = re.sub(r "[a-z]" , "bosh" ,s0)
>>> print (s4)
boshboshboshboshbosh boshboshbosh boshboshboshbosh

那么对于数字而言,就是[1-9],但是有没有一种方式,把所有的元素都包括了呢?有的,那就是\w

1
2
3
4
5
>>> import  re
>>>s0 = "james23 and wade3"     #这是一个混杂型的字符串,里面有数字、字母
>>>s5 = re.sub(r "\w" , "bosh" ,s0)
>>> print (s5)
boshboshboshboshbosh boshboshbosh boshboshboshbosh

\w对于“@#¥%^$”特殊符号是不好使的。


re还有一个subn的模块,再看看这个。

1
2
3
4
5
6
7
8
9
10
>>>  import  re
>>> s = "1abc23def45"
>>>  print ( str (re.subn(r "\w" , "hi" ,s)[ 1 ]))
11                             #这个是体现了一共替换了多少次,
>>>  print ( str (re.subn(r "\w" , "hi" ,s)[ 0 ]))
hihihihihihihihihihihi         #只有[0]和[1],[0]是替换的内容。
>>>  print ( str (re.subn(r "\w" , "hi" ,s)))
( 'hihihihihihihihihihihi' 11 )
>>>  print ( str (re.subn(r "[a-z]" , "hi" ,s)))
( '1hihihi23hihihi45' 6 )


对于字符串的基本操作:http://blog.csdn.net/minsenwu/article/details/7891453



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1767268

相关文章
|
22天前
|
索引 Python
python字符串类型及操作
本文主要讲解字符串类型的表示、操作符、处理函数、处理方法及格式化。内容涵盖字符串的定义、表示方法(单双引号、三引号)、索引与切片、特殊字符转义、常见操作符(如+、*、in等)、处理函数(如len()、str()、chr()等)、处理方法(如.lower()、.split()等)以及格式化方式(如.format())。通过实例代码详细介绍了字符串的各种用法和技巧,帮助读者全面掌握字符串操作。
python字符串类型及操作
|
4月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
176 64
|
4月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
172 62
|
2月前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
35 0
|
3月前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
77 5
|
3月前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
92 7
|
5月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
76 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
6月前
|
Python
python获取字符串()里面的字符
在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
167 36
|
5月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
106 7
|
5月前
|
索引 Python
Python 高级编程:深入探索字符串切片
在Python中,字符串切片功能强大,可灵活提取特定部分。本文详细介绍切片技巧:基本切片、省略起始或结束索引、使用负数索引、设定步长及反转字符串等。此外,还介绍了如何结合其他操作进行切片处理,如先转换大小写再提取子串。 来源:https://www.wodianping.com/yeyou/2024-10/48238.html
75 4

热门文章

最新文章