我正在嘗試決議檔案中的行,特別是提取任何具有小數的數字,因為這些數字表明它們是美元值。到目前為止,我得到了以下內容:
sample_text = " JAN 01 19 SOME OTHER STRING .25 1.56 12,345.67"
print(re.findall("\d \.\d ", re.sub(",", "", sample_text))) # Find numbers with decimals in them
print(len(re.findall("\d \.\d ", re.sub(",", "", sample_text))))
上面的輸出是:
['1.56', '12345.67']
2
所以“.25”被忽略了,我認為是因為它沒有前導零。當我添加前導零時,它似乎可以作業,但問題是,我正在讀取的檔案非常大并且有很多檔案,我不想在所有非前導零中添加前導零所有檔案中的前導零小數:
sample_text = " JAN 01 19 SOME OTHER STRING 0.25 1.56 12,345.67"
print(re.findall("\d \.\d ", re.sub(",", "", sample_text))) # Find numbers with decimals in them
print(len(re.findall("\d \.\d ", re.sub(",", "", sample_text))))
輸出:
['0.25', '1.56', '12345.67']
3
我確實嘗試了以下方法在沒有前導零的情況下將前導零添加到小數點,但它沒有給我想要的東西:
sample_text = re.sub(",", "", sample_text)
print(sample_text)
sample_text = re.sub(" .", "0.", sample_text)
print(sample_text)
print(re.findall("\d \.\d ", re.sub(",", "", sample_text))) # Find numbers with decimals in them
print(len(re.findall("\d \.\d ", re.sub(",", "", sample_text))))
輸出:
JAN 01 19 SOME OTHER STRING .25 1.56 12345.67
0.AN0.10.90.OME0.THER0.TRING0.0.0.0.0.250.0.1.560.0.0.0.0.0.2345.67
['0.10', '0.0', '0.0', '0.250', '0.1', '560.0', '0.0', '0.0', '2345.67']
9
uj5u.com熱心網友回復:
如果數字不存在 ,您可以使用而不是在點之前。*
out = re.findall("\d*\.\d ", re.sub(",", "", sample_text))
輸出:
['.25', '1.56', '12345.67']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/473582.html
標籤:python-3.x 正则表达式 细绳 文件 解析
上一篇:決議SQL子查詢的簡單方法
下一篇:如何鏈接內部文本檔案交叉參考?
