我目前正在开发一个vba项目,该项目有最终用户复制/粘贴长字符串 文本到工作表和代码来解析这些字符串中的垃圾数据 从他们那里组织起来。
字符串将始终具有不同的长度,并且数据之间具有不同的空格数。然而,它们将始终以相同的方式分组(即价格优先,一些空格,单位价格,一些空白区域和ID号)。是否有正则表达式只会将组(字母和数字)从空白中拉出来?
答案 0 :(得分:2)
答案 1 :(得分:2)
如果您只想删除连续的空格分隔符,可以使用Text To Columns。
MyRange.TextToColumns Destination:=MyRange.Cells(1), _
DataType:=xlDelimited, _
ConsecutiveDelimiter:=True, _
Space:=True
然后你可以从目标范围的单元格中读取你的值,MyRange.Cells(1).CurrentRegion
答案 2 :(得分:1)
我不太清楚excel VBA中的语法是如何工作的,但是在python(类似PERL)中,最简单的正则表达式是:
\S+
这将匹配任何非空白字符序列,并且在python中我会使用它的findall方法从文档中获取所有匹配项。
如果excel VBA不是一个简单的方法,我会衷心地建议放弃excel for python(但我承认excel非常好且易于解析)。