我有类似下面的大约 5k+ 字符串的数组作为某些应用程序的输出(出于安全原因,我可能不会提供确切的数据,但示例格式与实际数据非常相似):
kasdfhkasdhfaskdfj42345sdsadkfdkfhasdf5345534askfhsad
asdfasdf66sdafsdfsdf4560sdfasdfasdf
sdfaasdfs96sadfasdf65459asdfasdf
sadfasdf8asdfasdas06666654asdfasdfsd
fasdjfsdjfhgasdf6456sadfasdfasdf9sdfasdfsadf
简单地说,我有不间断的字母数字字符串,其中包含5 parts:
[latin letters][1 or more digits][latin letters][1 or more digits][latin letters]
字母部分的长度以及数字的数量是随机的,总字符串长度可能会有所不同several to 2-3 hundreds字符,但模式仍然如上。
实际上我感兴趣的是前导和尾随字符串部分, i.e. [1 or more digits][latin letters][1 or more digits]
可能会被扔掉,但应该提取另外 2 个字符串来分隔单元格。
I tried SUBSTITUTE
and SEARCH
函数,但我仍然可能无法处理随机数量的数字。 VBA 是最后一种理想的方法,但如果纯公式无用,那么它也是可以接受的。此外,该解决方案应该灵活,以便将来可能使用类似的模式 - 因此任何正确的指导/一般方法都将受到赞赏。
如果你不介意使用MS Word而不是 Excel - 对于此类任务有一种非常简单的方法,其中涉及内置Search and Replace
日常使用通配符。假设可以在 Word 中打开数据,请执行以下操作:
- Press CTRL+H for Replace dialog opening.
- Tick
Use wildcards
option.
- 您想要丢弃的数据部分符合以下模式:
[0-9]{1,}*[0-9]{1,}
- 表示任何数字出现 1 次或多次,其间有任何字符。根据您需要的区域设置;
代替,
here.
- 指定您喜欢的任何字符作为替换,例如
^t
(选项卡)或;
- 用于进一步分割零件。
- 进行更换。
- 您可以选择使用 Ribbon 将其余部分转换为表格
Insert > Table > Convert Text to Table...
特征。
您现在所需要做的就是保存/粘贴获得的结果。
实际上,该方法非常强大,并且许多与您类似的常规文本数据解析任务可以快速完成,无需特殊技能和/或编程。为此,您不需要任何第三方工具 - 现在每台 PC 都安装了 Word。
了解有关模式和适用案例的更多信息:
- 使用通配符查找和替换 http://www.gmayor.com/replace_using_wildcards.htm
- 使用通配符查找和替换字符 http://word.mvps.org/faqs/general/usingwildcards.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)