gpt4 book ai didi

regex - 使用 REGEX 替换方法放置千位分隔符

转载 作者:行者123 更新时间:2023-12-01 04:04:47 25 4
gpt4 key购买 nike

我必须在数字之间放置千位分隔符。到目前为止,我已经完成了:

输入字符串

1852  
2589653
586699
8542.28

查找模式
(?<=\d)(?=(?:\d{3})+(?!\d))  

替换为
,  

结果
1,852  
2,589,653
586,699
8,542.28

待办事项
我想从比赛收集中消除从 1700 年到 2010 年的所有年份范围。

任何人都有任何想法。欢迎提出所有建议。提前致谢。

最佳答案

这不是使用正则表达式的好方法。

相反,请使用您的语言的字符串格式化功能:

  • 如果必须从文本中提取数字,请使用简单的正则表达式来查找数字。
  • 将它们转换为浮点数或整数(视情况而定)
  • 使用字符串格式说明符表示您希望它们以千位分隔符输出。

  • 例如,这是一个 shell 脚本,我从字符串中提取一个数字并用逗号千位分隔符对其进行格式化:(Python 2.x)
    In [12]: import re

    In [13]: number_pattern = re.compile(r"\d+(.\d+)") #positive integer or floating point number

    In [14]: mystring = "The size of the rocket is 3141592.6."

    In [15]: number_string = number_pattern.search(mystring).group() #extract the number as a string

    In [16]: number_string
    Out[16]: '3141592.6'

    In [18]: number = float(number_string) #convert to number

    In [19]: '{:,}'.format(number) #format with thousands separator
    Out[19]: '3,141,592.6'

    这样做也使得消除数字范围变得微不足道。
    if (number > 1700) or (number < 2100):
    pass #do something

    关于regex - 使用 REGEX 替换方法放置千位分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191368/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com