字符串去除数字间的逗号
在西文数字的表示中,很多格式是类似这样:123,456,789。
如果得到这样的一个字符串,直接用int转换成整型肯定报错,那么在格式转换前需要先去除数字之间的逗号 。
如果字符串只有数字和[,],那么可以用一个replace替换。
例如:
>>> n = '123,456,789' >>> n1 = n.replace(',','') >>> print n1 123456789
但是,如果当字符串中包括数字和其他字符,replace替换就有点霸道了。例如:Today is Sunday, I bought $ 100,000. 直接用replace替换会把字符串中的逗号标点符号也删除了。
所以需要找到 数字,数字 这种格式之前的逗号。
代码类似如下:
import re s = 'Today is Sunday, I bought $ 100,000.' p = re测试数据pile(r'\d,\d') ? while 1: ? ? m = p.search(s) ? ? if m: ? ? ? ? mm = m.group() ? ? ? ? s = s.replace(mm,mm.replace(',','')) ? ? else: ? ? ? ? break print s
用正则表达式判断。
删除字符串中的符号
删除字符串中的指定符号
s = "abc123,123。" # 删除逗号 s = s.replace(',', '') print(s) ?# "abc123123。"
删除字符串中的空格
s = " ? 123abc ? " # 删除开头的空格 print(s.lstrip()) ?# "123 abc ? " # 删除结尾的空格 print(s.rstrip()) ?# " ? 123 abc" # 删除开头和结尾的空格 print(s.strip()) ?# "123 abc" # 删除字符串中所有的空格 print(s.replace(' ', '')) ?# "123abc"
删除字符串中的所有符号,只保留数字和英文字母
import re s = "123,abc .?/&?》^_^dddA。" # 把所有编码非\u0030-\u0039(数字)、\u0041-\u007a(英文字母)的字符替换为空字符串 rs = re.sub("([^\u0030-\u0039\u0041-\u007a])", '', s) print(rs) # "123abcdddA"
只字符串中的保留汉字
import re s = "我爱中国????,I love China。" # 把所有编码非\u4e00-\u9fa5(汉字)的字符替换为空字符串 rs = re.sub("([^\u4e00-\u9fa5])", '', s) print(rs) # "我爱中国"
对应的unicode编码范围
说明 unicode范围 数字 \u0030-\u0039 汉字 \u4e00-\u9fa5 大写字母 \u0041-\u005a 小写字母 \u0061-\u007a 英文字母 \u0041-\u007a 韩文 \uAC00-\uD7AF 日文 \u3040-\u31FF以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
查看更多关于Python字符串中如何去除数字之间的逗号的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did17263