在空格字符(“。”)之后添加2个字符的空格?

时间:2019-04-16 12:57:17

标签: python-3.x

我们有一个旧系统,该报告将报告导出为.txt文件,但是在几乎所有情况下,提供日期后,日期都以货币命名,如下例所示: 25.0002/14/18 (25 bucks on feb 14th)287.4312/08/17

是否有一种简单的方法来解析.并在右侧添加两个空格来分隔Python中的字符串?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

下面的代码将在给定字符串的货币和数据之间添加一个空格。

import re 
my_file_text = "This is some text 287.4312/08/17"
new_text = re.sub("(\d+\.\d{2})(\d{2}/\d{2}/\d{2})", r"\1 \2", my_file_text)
print(new_text)

输出

'This is some text 287.43 12/08/17'

REGEX

(\d+\.\d{2}):正则表达式的这一部分捕获了其所属组中的货币,它假设.之前它将有任意数字(> 1),之后仅两位数字,因此像(1000.25)这样的东西会被正确捕获,而(1000.205)和(.25)不会被捕获。

(\d{2}/\d{2}/\d{2}):这部分捕获了日期,并假定日期的日,月和年部分将始终使用两位数字表示,并用/分隔。

答案 1 :(得分:0)

也许更有效的方法,但是一个简单的方法可能是:

def fix(string):
    if '.' in string:
        part_1, part_2 = string.split('.')
        part_2_fixed = part_2[:2] + ' ' + part_2[2:]
        string = part_1 + '.' + part_2_fixed
    return string
In [1]: string = '25.0002/14/18'
In [2]: fix(string)                                                                                                                                                               
Out[2]: '25.00 02/14/18'