2013-01-23 25 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