我们有一个旧系统,该报告将报告导出为.txt文件,但是在几乎所有情况下,提供日期后,日期都以货币命名,如下例所示:
25.0002/14/18 (25 bucks on feb 14th)
或287.4312/08/17
。
是否有一种简单的方法来解析.
并在右侧添加两个空格来分隔Python中的字符串?任何帮助将不胜感激!
答案 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'