【发布时间】:2014-06-04 08:09:22
【问题描述】:
我想从这样的字符串中解析出年份信息
8995 美元 2008 年 4 月 18 日本田思域混合动力车 8995 美元(Orem)图片地图汽车和卡车 - 所有者
由于我在网上检索到这个字符串,有时年份元素不在同一个地方。我这样做的方法是使用 split 函数将字符串按空格拆分,然后检查数组的每个节点是否仅包含数字。
但是,当我使用函数 IsNumeric 时,它也会返回“$8995”节点为真。
什么是检查字符串是否只包含数字、没有“$”、没有“.”、而不是其他任何东西的好方法?
或者在我的情况下,有没有更好的方法来检索年份信息?
谢谢。
【问题讨论】:
-
您可以检查 1998 年和当前年份之间的 Isnumeric 和值...
-
我在想如果他们只输入 06 或 07 会怎样,但我想它可以通过检查值是否在 00 到 14 之间或值是否在 60 到 99 之间来工作
-
@Sparky 但它仍然不能解决如果一辆车只有 1999 美元并且我无法分辨年份之间的价格的问题。
-
我认为正则表达式可能是要走的路。您可能需要按可能性顺序检查多个模式,然后选择第一个匹配的模式。这可能有用:stackoverflow.com/questions/19481175/…
-
如果它们不包含 $ 符号,您也可能会遇到困难。您可以像现在一样隔离所有数字,他们编写一些业务逻辑来“猜测”哪个是年份,哪个是价格。该业务逻辑可能是几个规则,首先是其中一个数字字段是否包含 $ 符号。很难仅从奥迪 500 中提取年份?
标签: string vba excel isnumeric