从非数字字符串中抓取一个数字

时间:2009-08-12 14:01:37

标签: crystal-reports

我需要从非数字刺中获取数字,以便我可以在公式中使用它来显示单位价格,例如x = 1,000.00的示例4。我需要从文本中获取该数字4并在简单的公式中使用它来显示每个的单价是250.00。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

如果它总是“A = x = B”那么你可能会像以下一样快速而肮脏的解决方案:

VAL(Left({Test;1.testfield}, IIF(Instr({Test;1.testfield}, " x = ") > 0, Instr({Test;1.testfield}, " x = ") - 1, 0)))

这将获取“x =”之前的部分并将其转换为数字。我添加了IIF以防万一这个字符串不存在,但这可能没有必要。

答案 1 :(得分:0)

这取决于短语的结构是否是标准的。

正则表达式(perl-style):

/\D(\d*)\D/

应匹配数字以外的任何数字字符串。

/\b(\d*)\b/

更安全,因为它可以确保它不是单词,名称或型号/序列号的一部分。

如果您期望使用逗号/小数,则需要使其更像:

/\b((\d|\.|,)*)\b/

另一方面,如果您知道数字位于字符串的开头和结尾,并且由于某种原因您正在避免使用正则表达式,那么您可以在字符串上调用split或explode,并抓住第一个和最后一个部分