2013-01-23 21 views
1

我想知道有沒有人可以幫忙?我有一些文本文檔(已經通過聽寫/轉錄軟件包),需要以正確格式輸入大量資金。格式化貨幣值 - 搜索並替換/ Regex?

原文:$ 1489.05 >>應該是$ 1,149.05

原文:$ 1489年>>應該是$ 1,489.00

原文:$ 32,000個>>應該是$ 32,000.00

所以,換句話說 - 沒有量小數點需要添加.00,超過1000的數量需要添加逗號。

稍微複雜的是,超過10000的數量已經有一個逗號。

任何想法?

謝謝。

+1

我們不知道您使用的是什麼語言。正則表達式不會自行生存。他們通過某種東西來實現。 –

+0

@Andy - 仍然可以給出答案。它可能需要稍微調整,通常只需要在替換字符串中的「/ 1」和「$ 1」之間進行選擇。但是,是的,最好說明解決方案的實施語言。 – robinCTS

回答

1

編輯:改性額外的步驟,以應付失蹤$
編輯:修改步驟1 & 2失蹤$

這需要三個步驟來完成,以應付偶爾錯過,有三個正則表達式。

步驟1

使用正則表達式模式(^|[^$,\d])(\d*?,?\d{3}(?:[^\d]|$))與替換字符串\1$\2

這將修復缺失的美元符號。

步驟2

使用正則表達式模式(\$\d+)(\d{3})與替換字符串\1,\2

這將修復丟失的逗號。

步驟3

使用正則表達式模式(\$[0-9,]++)(?!\.)與替換字符串\1.00
(如果您正則表達式引擎不支持佔有慾量詞,使用替代模式
(\$[0-9,]+)(?![0-9.,])

這將修復缺失美分。

注意這些工作爲TextWrangler(和其他使用PCRE的應用程序)。您可能需要調整替換字符串以適應其他正則表達式引擎,因爲有些使用$1甚至\\1而不是\1

+0

非常感謝您的幫助!我對此很新穎 - 有沒有機會讓我一步一步地指導如何在Mac上實現這一點?我需要查找和更改大量文本文件中的數字並保存更改的文檔。有沒有一個接口可以幫助我做到這一點? – RexTheRunt

+0

@RexTheRunt - 我假設你知道如何搜索和替換應用程序中的文本,如單詞?您可以在允許使用正則表達式的文字處理器/文本編輯器中以相同方式使用正則表達式。對於很多文檔,我會推薦免費的[TextWrangler](http://www.barebones.com/products/textwrangler/index.html)。它具有出色的多文件替換功能和手冊中的良好正則表達式(Grep)介紹。我調整了我的答案以適應它。如果您需要更多幫助,我可以附加一個快速教程。 – robinCTS

+0

謝謝!我會開始。我正在使用一些名爲TextSoap的通用搜索和替換的東西,但據我可以告訴它不會讓我使用Grep。然後,我使用InDesign進行更高級的grep工作,但這意味着需要導入並放置所有單詞文檔,這在時間上是相反的。我會給牧師一個去...如果我卡住了,回到你身邊。 – RexTheRunt