【发布时间】:2014-04-17 05:18:04
【问题描述】:
我在 excel 中工作,需要 VBA 代码来提取 3 个特定的数字模式。在 A 列中,我有几行字符串,其中包括字母字符、数字和标点符号。我需要删除除 13 位数字(仅包含数字)、10 位数字(仅包含数字)或紧跟“x”字符的 9 位数字之外的所有字符。这些是 isbn 数字。
剩余的字符应该用一个空格分隔,并且只有一个空格。因此,对于在 A1 中找到的以下字符串:“这里有几本书,包括 0192145789 和 9781245687456。此外,还包括 isbn 045789541x 的书。这本书是 100000000 册之一。”
输出应该是:0192145789 9781245687456 045789541x
请注意,数字 100000000 不应包含在输出中,因为它与上述三种模式中的任何一种都不匹配。
与 VBA 相比,我不反对 Excel 公式解决方案,但我认为 VBA 会更简洁。提前致谢。
【问题讨论】:
-
使用空格作为分隔符拆分字符串,然后仅连接以数字开头的段。
-
如果你想要正则表达式,请查看post,它概述了在 VBA 中使用正则表达式的几种方法。