Python字符串中如何去除数字之间的逗号

目录
  • 字符串去除数字间的逗号
  • 删除字符串中的符号

字符串去除数字间的逗号

在西文数字的表示中,很多格式是类似这样: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.compile(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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python正则表达式去掉数字中的逗号(python正则匹配逗号)

    分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式 复制代码 代码如下: [a-z]+,[a-z]? 复制代码 代码如下: import re sen = "abc,123,456,789,mnp"p = re.compile("\d+,\d+?") for com in p.finditer(sen):    mm = com.group()    print "hi:", mm    print &qu

  • python3去掉string中的标点符号方法

    网上看到的python去掉字符串中的标点符号的方法,大多是基于python2的,不适用python3,调整后代码如下: 代码 lower_case_documents = ['Hello, how are you!','Win money, win from home.','Call me now.','Hello, Call hello you tomorrow?'] sans_punctuation_documents = [] import string for i in lower_ca

  • Python实现按逗号分隔列表的方法

    方法一: def commaSpiltList(self, listData): listData = list(listData) strs = str(listData[0]) for letter in range(1, len(listData) - 1): strs = strs + ',' + str(listData[letter]) strs += ',' + str(listData[len(listData) - 1]) print(strs) 方法二: #!/usr/bin

  • Python字符串中如何去除数字之间的逗号

    目录 字符串去除数字间的逗号 删除字符串中的符号 字符串去除数字间的逗号 在西文数字的表示中,很多格式是类似这样:123,456,789. 如果得到这样的一个字符串,直接用int转换成整型肯定报错,那么在格式转换前需要先去除数字之间的逗号 . 如果字符串只有数字和“,”,那么可以用一个replace替换. 例如: >>> n = '123,456,789' >>> n1 = n.replace(',','') >>> print n1 12345678

  • python字符串中匹配数字的正则表达式

    Python 正则表达式简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数. 本章节给大家介

  • Python 正则表达式匹配数字及字符串中的纯数字

    Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[1-9]\d{5}(?!\d) 身份证:\d{15}|\d{18} ip地址:\d+\.\d+\.\d+\.\d+ [1-9]\d*      正整数 -[1-9]\d* 负整数 -?[1-9]\d* 整数 [1-9]\d*|0 非负整数 -[1-9]\d*|0 非正整数 [1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 正浮点数 -([1-

  • 对Python字符串中的换行符和制表符介绍

    有关换行的问题 首先提一个问题,如下. python程序代码如下: print("I'm Bob. What's your name?") 上一行代码的输出如下: I'm Bob. What's your name? 上面的输出没有换行.想在What之前换行,效果是: I'm Bob. What's your name? 该怎么办? 在What之前敲回车,行吗?不行,这个回车的效果是语句换行,不是输出内容换行. 用换行符的解决办法 上述问题的解决办法是在What之前插入换行符.写法是:

  • JAVA 统计字符串中中文,英文,数字,空格,特殊字符的个数

    引言 可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为'0'~'9'之间,英文字母为'a'~'z'或'A'~'Z'等,Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb, 但通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错误的结果.所以通过Character.UnicodeBlock来进行判断.代码如下: package cn.csrc.base.count; public class

  • Python字符串中添加、插入特定字符的方法

    分析 我们将添加.插入.删除定义为: 添加 : 在字符串的后面或者前面添加字符或者字符串 插入 : 在字符串之间插入特定字符 在Python中,字符串是不可变的.所以无法直接删除.插入字符串之间的特定字符. 所以想对字符串中字符进行操作的时候,需要将字符串转变为列表,列表是可变的,这样就可以实现对字符串中特定字符的操作. 1.添加字符实现 添加字符或字符串 如果想在字符串 土堆 后面或者前面添加 碎念 字符串. 可以使用 + 号实现字符串的连接,或者使用方法 .join() 来连接字符串. .j

  • python字符串中的单双引

    python中字符串可以(且仅可以)使用成对的单引号.双引号.三个双引号(文档字符串)包围: 'this is a book'  "this is a book" """this is a book""" 可在单引号包围的字符串中包含双引号,三引号等,但不能包含单引号自身(需转义) 'this is a" book' 'this is a"" book' 'this is a""

  • Java实现从字符串中找出数字字符串的方法小结

    本文实例总结了Java实现从字符串中找出数字字符串的方法.分享给大家供大家参考,具体如下: int start = 0; String numStr = null; for (int j = 0; j < valuesStr.length() - 1; j++) { if (Character.isDigit(valuesStr.charAt(j)) == false && Character.isDigit(valuesStr.charAt(j + 1)) == true) { s

  • 如何在python字符串中输入纯粹的{}

    python的format函数通过{}来格式化字符串 >>> a='{0}'.format(123) >>> a '123' 如果需要在文本中包含{}字符,这样使用就会报错: >>> a='{123} {0}'.format('123') Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: tup

  • python开发中两个list之间传值示例

    由于改代码因为这个问题卡了半个小时特此记录 首先对于一个单层的列表 赋值如下,可以看见,如果直接使用 = 的话.其中一个变换便会引起另外一个变换,这时因为这两个list被python解释的时候使用的相同的地址,如下面输出的 id()中的内容,所以此时如果想让一个列表接收到另外一个列表的值,并且在接收到值后不会因为其中任意一个值的改变而改变,这时候就需要使用copy方法,这里可以解释成,当使用了copy方法后,python单独创建了找个一个内存区的地址放了新的那个值. a = [ 1,2,3] b

随机推荐