Ⅰ Python:如何过滤特殊字符和乱码的字符
如果是从Html文本弄来的,那直接download Html的源代码,然后直接替换其中的<div class="">这里是随机字符串</div>
Python里面使用xml.minidom就OK
Ⅱ python 去掉标点符号
这个来明显是错误的,你根本自没理解replace函数是怎么用的。
Python str.replace(old, new[, max])
方法把字符串str中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max
次。
如果非要用replace()函数来实现要这样写:
importstring
m=l
forcinstring.punctuation:
m=m.replace(c,")
更简便的方法是用translate(),代码如下:
importstring
m=l.translate(None,string.punctuation)
Ⅲ python pandas 过滤某列特殊字符求助
改成r="\W"试试
Ⅳ python 截取特殊符号后面的字符串
s="01-1"
s1=s.split("-")
s2=int(s1[1])
如果都是只有一个 - 的话可以这样就好...
Ⅳ python有没有好的去处字符串中特殊字符的方法
直接用str.replace就可以了。old表示将要替换的子串,new表示目标字符串,count表示替换个数。
>>> help(str.replace)
Help on method_descriptor:
replace(...)
S.replace(old, new[, count]) -> str
Return a of S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.
Ⅵ python 如何去除字符串中的符号
去掉两端字符串:
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如何去除字符串中不想要的字符
问题:
过滤用户输入中前后多余的空白字符
‘ ++++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 如何去特殊字符
针对这里的问题,我们可以先将文件名解码成unicode,然后用gbk编码,如果抛出异常,说明编码失败,即文件名中存在特殊字符。下面是一个小例子:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
file_names = ["œ®特殊字符.txt",
"没有特殊字符.txt",
"ßååå.txt"
]
for file_name in file_names:
try:
file_name.decode("utf-8").encode("gbk")
print file_name, "..."
except UnicodeEncodeError:
print file_name, "中奖"
"""outputs:
œ®特殊字符.txt 中奖
没有特殊字符.txt ...
ßååå.txt 中奖
"""
Ⅸ python使用正则表达式删除中文字符中的特殊字符,出现异常: 1、特殊字符无法完全删除。
转义的\全部去掉,换成r"内容"看看。比如
r"(){},.?/\+-"
Ⅹ python 怎么过滤 emoji 表情符号
用
string =“你猜猜em[4500]48570em[2250]”
cc = re.findall('[\u4e00-\u9fa5]', string)
cc="你猜猜"
去提取中文或者英文不也可以达到去除表情符号的作用吗版?我用的反权向思维