一日一技:在字符串中批量替换单个字符

简介: 一日一技:在字符串中批量替换单个字符

在我们使用爬虫爬取下来的数据中可能混有很多不需要的字符,例如:

address = '浙江省杭州市\r\n滨江区xx小区7#门'

我现在需要移除里面的 \r\n、把 #替换为 。你可能会这样写代码:

clean_address = address.replace('\r', '')
clean_address = address.replace('\n', '')
clean_address = address.replace('#', '号')

这样的写法,处理几个字符还行,但如果要处理几百个特殊符号,那就很困难了。

所以当我们要处理很多的字符串替换时,可能会有一个配置文件来记录替换关系:

need_replace = {'\n': '', '\r': '', '#': '号'}

在这种情况下,我们可以使用字符串的 translate方法来实现替换:

address = '浙江省杭州市\r\n滨江区xx小区7#门'
need_replace = {'\n': '', '\r': '', '#': '号'}
table = str.maketrans(need_replace)
clean_address = address.translate(table)

运行效果如下图所示:

使用这种方式,可以让代码看起来更加简洁,也更方便配置。

不过当需要替换的字符串比较少时, translate的效率比 replace低。并且 translate只能实现多个单字符的替换,不能替换多字符的字符串,例如:

address = '浙江省杭州市</p>滨江区'

如果要把 </p>整体替换为空,就不能使用 translate方法。

目录
相关文章
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
3月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
354 0
|
7月前
|
Shell Perl
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
917 7
excel删除空格之后的字符
excel删除空格之后的字符
|
移动开发 编译器 C#
C# 常用的“转义符”对字符串的使用与讲解
C# 常用的“转义符”对字符串的使用与讲解
|
C语言 C++
从字符串中删除指定字符
从字符串中删除指定字符
137 2
|
C语言
向字符串添加空格
首先我们可以算出s数组的大小-len,也可以直接得到spaces的大小-即要添加的空格数,那么我们要创建的数组大小是len+spacesSize吗? 不是,应该是len+spacesSize+1,这里的加一是存放一个'\n' 这里呢 我们可以写一个for i循环,用来把s中的元素放到arr里面,然后在外面定义一个falg用来充当arr的下标,存进一个元素falg++,再定义一个j=0,当i == space[j]就存放空格,每存放一个空格++.
77 0

热门文章

最新文章