我有一个像这样的字符串:

123456789.123456789-123456789

在十进制/连字符之前和之后可以有任意数量的数字,我需要做的是删除小数点之前的所有内容,包括小数,并删除连字符和连字符后的所有内容.然后使用中间的数字组(我需要保留),我需要放置一个逗号数千个分隔符.

所以这里的输出是:

123,456,789

我可以使用lookarounds捕获中间的数字,但它不会取代其他数字,我不知道如何使用lookarounds放置逗号.

(?<=\.)\d+(?=-)

然后我想我可以使用像这样的捕获组,它将起作用,但不知道如何插入逗号

\d+\.(\d+)-\d+

我如何使用上述正则表达式之一插入逗号?

解决方法:

不要试图用正则表达式插入千位分隔符;只需挑出中间数字并使用函数来产生替换; re.sub()接受函数作为替换模式:

re.sub(r'\d+\.(\d+)-\d+', lambda m: format(int(m.group(1)), ','), inputtext)

在format() function中使用的整数格式处理将数字格式化为具有数千个分隔符的数字:

>>> import re

>>> inputtext = '123456789.123456789-123456789'

>>> re.sub(r'\d+\.(\d+)-\d+', lambda m: format(int(m.group(1)), ','), inputtext)

'123,456,789'

这当然仍然适用于包含数字,点,数字,短划线,数字序列的更大文本.

format()函数与str.format() method密切相关,但不需要完整的字符串模板(因此不需要{}占位符或字段名称).

标签:regex-lookarounds,python,regex

python输出数字用逗号隔开_Python用逗号千位分隔符替换中间数字相关推荐

  1. python千位分隔符_js为数字添加千位分隔符

    使用一条正则表达式将12345678转为12,345,678 看到一个方法"12345678".replace(/(\d)(?=(?:d{3})+$)/g, '$1,') 但是不太 ...

  2. qt带小数点的数字串显示,Qt-自定义小数点和千位分隔符

    How can I convert a number (double) to string, with custom decimal point and thousand separator char ...

  3. python中千位分隔符怎么表示_python – 如何设置自定义千位分隔符?

    我知道理论上大整数的数字可以按数千个分组,以提高可读性: Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on l ...

  4. Python基础:增加和去除数字的千位分隔符

    千位分隔符,其实就是数字中的逗号.依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值.所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值. 处理财 ...

  5. python千位分隔符_python – 如何设置自定义千位分隔符?

    我知道理论上大整数的数字可以按数千个分组,以提高可读性: Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on l ...

  6. HTML数字项目标签千位分隔符,请使用千位分隔符(逗号)表示web网页中的大数字

    一.移动端大数值会默认当作电话号码 在手机等移动设备上,对于超过一定个数的数值,系统默认会当做电话号码处理,而不是一个数字 按照中文用户的使用习惯,有时候个数很多的连续数字其实真的就是一个数字,自动变 ...

  7. word表格数据处理:如何给长数字添加千位分隔符?

    我们在工作中难免会遇到一些未设置任何格式的表格数据,这类数据会让读者看起来非常吃力.当碰到这个问题时,如果你只会手动一个个地去设置,那可得忙活半天.而如果你掌握一些整理数据的小技巧,别人半天的工作量, ...

  8. 万元怎样保留小数点_如何让数字以万元为单位显示并保留2位小数,且有千位分隔符...

    B列和C列的数据来自A列.现在要求分别设置B列和C列的单元格格式,显示为:万元保留1位小数,万元保留2位小数 显示数字(万元保留1位小数) 1,B列设置单元格格式,单元格自定义格式为:0!.0, 2, ...

  9. JS实现数字自动转换人民币金额(自动格式化输入的数字/千位分隔符)

    这个货币转换JS代码,可以实现自动格式化输入的数字,自动千位分隔符 <script> function cc(s){if(/[^0-9\.]/.test(s)) return " ...

最新文章

  1. R语言可视化分面图、假设检验分组t检验、可视化单变量分组分面箱图(faceting bar plot)、添加误差条(error bar)、添加p值、添加抖动数据点(jitter points)
  2. 46栈内存溢出、内存区域(程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区、直接内存、内存溢出)与内存溢出(对象实例化分析)
  3. SQL注入-基于MySQL的注入提权(十七)
  4. 关于gcc -o 的使用问题
  5. [C++] 构造函数 which is of non-class type
  6. 沃兹批评苹果避税:纳税还不如我积极
  7. 数据管理与数据治理的区别
  8. Ubuntu 16.04 安装Matlab R2015b
  9. 知乎APP---案例分析
  10. 数据库导出数据字典(MySQL)
  11. mysql中工作表工作簿的查询_如何使用SQL语句实现对Excel工作表数据的查询?
  12. 在latex中设置表格背景色
  13. Managing Supply and Demand Balance Through Machine Learning-笔记
  14. 使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。假设向程序输入:5则输出为:{1:1, 2:4, 3:9, 4:16, 5:25}
  15. python音乐实例详解_python下载无损音乐示例源码(qq音乐)
  16. 服务器ghost备份后无法进入系统还原,一键Ghost备份还原解决方法
  17. Linux:Ubuntu系统解决不能上网问题
  18. wp缩略图php,wordpress缩略图彻底解决方法,自动获取第一张图片缩略图
  19. 大三Web课程设计——悬崖上的波妞(4页) HTML+CSS(可以很好的应付老师的作业)
  20. 指标体系构建方法-四个模型

热门文章

  1. busybox添加自定义applet
  2. 十进制转十六进制 C++
  3. mysql重装后出现旧密码_MYSQL重装时需要旧密码解决方法
  4. 超级好用的Java技巧
  5. (建议收藏)TCP协议灵魂之问,巩固你的网路底层基础
  6. Flex 布局教程——阮老师
  7. catkin_package到底干了什么
  8. redis map 过期时间_redis的过期时间和过期删除机制
  9. Cards Ext与中国邮路问题
  10. 5G NR PDCCH DCI