当前位置:首页 » 编程语言 » python字符过滤

python字符过滤

发布时间: 2023-03-24 12:53:05

python如何去除字符串中不想要的字符

问题:
过滤用户输入中前后多余的空白字符
‘ ++++abc123--- ‘
过滤某windows下编辑文本中的’\r’:
‘hello world \r\n’
去掉文本中unicode组合字符,音调
"Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"
如何解决以上问题?
去掉两端字符串: strip(), rstrip(),lstrip()

123456789101112131415

#!/usr/bin/python3 s = ' -----abc123++++ ' # 删除两边空字符print(s.strip()) # 删除左边空字符print(s.rstrip()) # 删除右边空字符print(s.lstrip()) # 删除两边 - + 和空字符print(s.strip().strip('-+'))

删除单个固定位置字符: 切片 + 拼接

123456

#!/usr/bin/python3 s = 'abc:123'# 字符串拼接方式去除冒号new_s = s[:3] + s[4:]print(new_s)

删除任意位置字符同时删除多种不同字符:replace(), re.sub()

1234567891011

#!/usr/bin/python3 # 去除字符串中相同的字符s = '\tabc\t123\tisk'print(s.replace('\t', '')) import re# 去除\r\n\t字符s = '\r\nabc\t123\nxyz'print(re.sub('[\r\n\t]', '', s))

同时删除多种不同字符:translate() py3中为str.maketrans()做映射

1234567

#!/usr/bin/python3 s = 'abc123xyz'# a _> x, b_> y, c_> z,字符映射加密print(str.maketrans('abcxyz', 'xyzabc'))# translate把其转换成字符串print(s.translate(str.maketrans('abcxyz', 'xyzabc')))

去掉unicode字符中音调


#!/usr/bin/python3 import sysimport unicodedatas = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"remap = { # ord返回ascii值 ord('\t'): '', ord('\f'): '', ord('\r'): None }# 去除\t, \f, \ra = s.translate(remap)'''通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。 如果未定义组合类,则返回0。'''cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建议拆分开来理解b = unicodedata.normalize('NFD', a)'''调用translate 函数删除所有重音符'''print(b.translate(cmb_chrs))

⑵ python 正则表达式过滤特殊字符

>>> import re

>>> string = "123我adfasdf?(((q,[]"

>>> string

'123我adfasdf?(((q,[]'

>>> sub_str = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])","",string)

>>> sub_str

'123我adfasdfq'

⑶ python 怎么过滤特殊字符

#coding:utf-8
defcolate(st="你要过滤的字符串",ch='你要过滤的特殊字符'):
return''.join(st.split(ch))
#如果要过滤多个特殊字符的话,可以多次调用这个函数

⑷ python的字符串如何按自己指定的格式进行筛选

按照你的要求编写的Python程序如下

import re

str = "娜娜_二零零-酷我(ERFD)dgfdg国米_山地车-乘除法(ICEX)ifex愤愤然_概念人-维权(LUVD)cisnq框架内_聚合-阿文看(OMNS)cdwcgr"

regex=r'([u4e00-u9fa5]+_)'

a=re.sub(regex,r' 1',str)

print(a)

⑸ python pandas 过滤某列特殊字符求助

你自己先要确定“乱码”的定义,例如韩文(unicode),如果你装了韩文字体,那是可以显橘槐旁示的,不是乱码,但没装的话就是问号一堆,如果是韩文(euc-kr),在汉字系统那只是一堆无语义的汉字……可能这个举例扯远了,你觉得不会有这种情况,但我只是提醒一下会有意料圆橡之外的情况

所以,你需要一个白名单,把你允许的字符unicode范围都列出来,因为肯定不止汉字,像你列出的文件名中就有空格
另外,没必要逐个字符检查,直接用明陪re.sub去除白名单外的字符就可以了

⑹ python怎么过滤字符串长度小于4的

len(s) < 4
len函数用于获取字符串长度,因此上述表达式用于判断字符串s的长度是否小于4

⑺ Python处理字符串必备方法

字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它。

▍1、Slicing

slicing切片,按照一定条件从列表或者元组中取出部分元素(比如特定范围、索引、分割值)

▍2、****strip()

strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

在使用strip()方法时,默认去除空格或换行符,所以#号并没有去除。

可以给strip()方法添加指定字符,如下所示。

此外当指定内容不在头尾处时,并不会被去除。

第一个 前有个空格,所以只会去取尾部的换行符。

最后strip()方法的参数是剥离其值的所有组合,这个可以看下面这个案例。

最外层的首字符和尾字符参数值将从字符串中剥离。字符从前端移除,直到到达一个不包含在字符集中的字符串字符为止。

在尾部也会发生类似的动作。

▍3、****lstrip()

移除字符串左侧指定的字符(默认为空格或换行符)或字符序列。

同样的,可以移除左侧所有包含在字符集中的字符串。

▍4、rstrip()

移除字符串右侧指定的字符(默认为空格或换行符)或字符序列。

▍5、****removeprefix()

Python3.9中移除前缀的函数。

和strip()相比,并不会把字符集中的字符串进行逐个匹配。

▍6、removesuffix()

Python3.9中移除后缀的函数。

▍7、****replace()

把字符串中的内容替换成指定的内容。

▍8、****re.sub()

re是正则的表达式,sub是substitute表示替换。

re.sub则是相对复杂点的替换。

和replace()做对比,使用re.sub()进行替换操作,确实更高级点。

▍9、****split()

对字符串做分隔处理,最终的结果是一个列表。

当不指定分隔符时,默认按空格分隔。

此外,还可以指定字符串的分隔次数。

▍10、****rsplit()

从右侧开始对字符串进行分隔。

▍11、****join()

string.join(seq)。以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串。

▍12、****upper()

将字符串中的字母,全部转换为大写。

▍13、****lower()

将字符串中的字母,全部转换为小写。

▍14、capitalize()

将字符串中的首个字母转换为大写。

▍15、****islower()

判断字符串中的所有字母是否都为小写,是则返回True,否则返回False。

▍16、isupper()

判断字符串中的所有字母是否都为大写,是则返回True,否则返回False。

▍17、****isalpha()

如果字符串至少有一个字符并且所有字符都是字母,则返回 True,否则返回 False。

▍18、isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False。

▍19、isalnum()

如果字符串中至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回 False。

▍20、count()

返回指定内容在字符串中出现的次数。

▍21、****find()

检测指定内容是否包含在字符串中,如果是返回开始的索引值,否则返回-1。

此外,还可以指定开始的范围。

▍22、rfind()

类似于find()函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。

▍23、startswith()

检查字符串是否是以指定内容开头,是则返回 True,否则返回 False。

**
**

▍24、****endswith()

检查字符串是否是以指定内容结束,是则返回 True,否则返回 False。

▍25、****partition()

string.partition(str),有点像find()和split()的结合体。

从str出现的第一个位置起,把字符串string分成一个3 元素的元组(string_pre_str,str,string_post_str),如果string中不包含str则 string_pre_str==string。

▍26、center()

返回一个原字符串居中,并使用空格填充至长度width的新字符串。

▍27、ljust()

返回一个原字符串左对齐,并使用空格填充至长度width的新字符串。

▍28、rjust()

返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。

▍29、f-Strings

f-string是格式化字符串的新语法。

与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!

▍30、swapcase()

翻转字符串中的字母大小写。

▍31、zfill()

string.zfill(width)。

返回长度为width的字符串,原字符串string右对齐,前面填充0。

参考文献: https://mp.weixin.qq.com/s/9cuO-KL3g9ldqRGGZBVnjw

⑻ Python:如何过滤特殊字符和乱码的字符

如果是从Html文本弄来的,那直接download Html的源代码,然后直接替换其中的<div class="">这里是随机字符串</div>

Python里面使用xml.minidom就OK

⑼ python 正则或者BeautifulSoup 把带http的字符串过滤掉,怎么实现,谢谢

可以利用字符串的操作函数,使用条件判断该字符串中是否存在'http'

⑽ python 字符串过滤英文标点符号

import unicodedata
import sys

tbl = dict.fromkeys(i for i in xrange(sys.maxunicode)
if unicodedata.category(unichr(i)).startswith('P'))
def remove_punctuation(text):
return text.translate(tbl)

import regex as re

def remove_punctuation(text):
return re.sub(ur"\p{P}+", "", text)

热点内容
数据库索引结构 发布:2024-11-03 04:02:14 浏览:234
xcode加密 发布:2024-11-03 03:53:45 浏览:225
算法设计王晓东pdf 发布:2024-11-03 03:38:51 浏览:20
本地数据库服务器 发布:2024-11-03 03:33:07 浏览:331
方舟搭建服务器多少内存 发布:2024-11-03 03:33:07 浏览:525
android全屏代码 发布:2024-11-03 03:30:12 浏览:848
键入凭据存储的密码 发布:2024-11-03 03:30:01 浏览:721
设置密码字符怎么设置 发布:2024-11-03 03:22:50 浏览:26
脚本战士是什么意思 发布:2024-11-03 03:22:39 浏览:872
php的mysql扩展 发布:2024-11-03 03:22:01 浏览:394