python里实现字符串替换

>>>aa="hi"
>>>num=[0,1,2,3,4,5]
>>>for i in num :
            if i >0:
                print(aa)
hi
hi
hi
hi
hi

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

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

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

rm.sub模块

sub模块主要是字符串的针对性替换作用,使用格式是text.sub(r"要替换的内容","替换成的内容",替换范围),举个例子:

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

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

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

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

>>>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],

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

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

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

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

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

>>> 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]
>>> print(str(re.subn(r"\w","hi",s)))
(‘hihihihihihihihihihihi‘, 11)
>>> print(str(re.subn(r"[a-z]","hi",s)))
(‘1hihihi23hihihi45‘, 6)
时间: 2024-11-29 06:18:17

python里实现字符串替换的相关文章

python文件操作--字符串替换

如把test.txt文件的 所有 AAA 字符串 替换成 aaaaa 1 with open('test.txt','+r') as f: 2 t = f.read() 3 t = d.replace('AAA', 'aaaaaa') 4 #读写偏移位置移到最开始处 5 f.seek(0, 0) 6 f.write(t)

python 字符串替换功能 string.replace()可以用正则表达式,更优雅

说起来不怕人笑话,我今天才发现,python 中的字符串替换操作,也就是 string.replace() 是可以用正则表达式的. 之前,我的代码写法如下,粗笨: 自从发现了正则表达式也生效后,代码变得优雅简洁: 备注:上图中的base_info 是 pandas 里的 dataframe 数据结构,可以用上述方法使用 string 的 replace 方法. 原文地址:https://www.cnblogs.com/jjliu/p/11514226.html

python字符串替换的2种有效方法

python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身的replace方法a.replace('word','python')输出的结果是hello python 2用正则表达式来完成替换:import restrinfo = re.compile('word')b = strinfo.sub('python',a)print b输出的结果也是hell

python字符串替换的2种方法

python字符串替换可以用两种方法实现: 1.用字符串本身的方法 2.用正则来替换字符串 下面用个例子来实验: a = 'hello word' 我把a字符串里的word替换为python 1.用字符串本身的replace方法 a.replace('word' , 'python') 输出结果是hello  python 2.用正则表达式来完成替换: import  re strinfo = re . compile('word') b = strinfo.sub('python',a) pr

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原

python 字符串替换

字符串替换可以用内置的方法和正则表达式完成. 1用字符串本身的replace方法: a = 'hello word' b = a.replace('word','python') print b 2用正则表达式来完成替换: import re a = 'hello word' strinfo = re.compile('word') b = strinfo.sub('python',a) print b 3 单字符多次替换 import reastr = 'AGTCTTAGGC'charmap

Python修改文件方法——字符串替换

#字符串替换import sysf = open("yesterday2","r",encoding="utf-8")f_new = open("yesterday2.bak","w",encoding="utf-8") find_str = sys.argv[1]replace_str = sys.argv[2]for line in f: if find_str in line: l

python之使用字符串

3.2字符串格式化使用字符串格式化操作符即百分号%来实现 >>>format = "hello,%s.%s enough for ya?" >>>values = ('world','Hot') >>>print format % values hello,world.Hot enough for ya? >>> 格式化字符串的%s部分称为转换说明符,它们标记了需要插入转换值的位置.s表示值会被格式化为字符串---

python中修改字符串的值

demo: info = 'abc' 如果要把上面的字符串info里面的c替换成d,要怎么操作呢? 方法一:使用python中的replace()方法 语法: str.replace(old, new[, max]) 参数: old -- 将被替换的子字符串. new -- 新字符串,用于替换old子字符串. max -- 可选字符串, 替换不超过 max 次 >>> info = "abc" >>> str = info.replace("