0

我有一个平面文件( CSV )"|",其值

为了做到这一点,我创建了这个正则表达式规则:

(\|\ *)([0-9]{0,3})(\.|\ )?([0-9]{3})?(\.|\ )?([0-9]{3})?(,)?([0-9]{0,3})(-| )?(\|)

这很好用,除非 2 个数字是连续的,例如:

| 9 450,000 |**9 809 100,000** | 1 890,000 |UN |

我该如何纠正?

4

1 回答 1

0

如果您使用的正则表达式风格允许两种环视,我认为这可能就足够了:

(?<=\d)(?: |\.)(?=\d)

然后用空字符串替换匹配项可能就足够了。
但是,如果你不能使用它们,你仍然可以使用

(\d)(?: |\.)(\d)

然后使用引用的组($1$2\1\2取决于口味)。

编辑:
确保不替换日期:

(?<=\d)(?: |\.)(?=\d)(?=[ .\d]*,)

当您使用 csv 文件时,您的数据被分隔|以便可以工作(因为我没有您的全部数据,我不确定)。

于 2013-04-22T12:15:48.527 回答