OpenOffice Calc 正则表达式返回错误值 - 我的正则表达式有什么问题?

OpenOffice Calc 正则表达式返回错误值 - 我的正则表达式有什么问题?

我有一列由我的银行连接起来的文本值,就像典型的月度报表一样。

以下是一个例子(A240列):

OCT 26 BALANCEPROTECTOR PREMIUM $10.05

我正在尝试将单独列的值设置为美元金额的数值。这是当前在 G240 列中设置的当前公式:

=SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))

我期望结果为 10.05,但结果显示为 33.00 美元(列设置为货币)。输入的原始值为 33,如果我按默认格式显示,则会显示。

我的正则表达式有问题吗,还是我只是缺少一些选项?我尝试显示 =CLEAN(A240),一切看起来都像在 A240 中一样,所以我知道公式接收了所有必要的数据。

有什么想法或者改进吗?

谢谢!

更新:

我意识到搜索函数返回的是正则表达式的位置,而不是字符串。读完这篇文章后,我更新了公式,现在它可以按预期工作了:

=VALUE(MID(CLEAN(A240);SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))+1;LEN("\$[0-9]{1,6}\.[0-9]{2}")))

答案1

在 pnuts 的帮助下,我找到了不使用 REGEX 的 OpenOffice Calc 实现方法:

=RIGHT(A240;LEN(A240)-SEARCH("$";A240))

请注意分号的使用和缺失的括号。

使用 REGEX 解决了我在三月份的问题,我是这么解决的:

=VALUE(MID(CLEAN(A240);SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))+1;LEN("\$[0-9]{1,6}\.[0-9]{2}")))

答案2

使用单引号。这适用于egrep,但双引号不适用于egrep

相关内容