Excel中的正则expression式VBA特殊字符和embedded式空间

我必须parsing一个巨大的文件,但其中的一个价值观正在引起我很多的悲痛。

这是六个字符的固定长度字段。 允许的值的描述是:

左alignment; 空间充满。 不能包含特殊字符或embedded空格。 如果数据不可用,空间填满。

我到目前为止所尝试的是检查:

If Code = " " Then MsgBox "Code is Space Filled." 

这将检查是否所有的空间填充,这是可以的。

接下来,我检查是否有任何特殊字符使用以下function:

 With ObjRegex .Global = True .Pattern = "[^a-zA-Z0-9\s]+" StripNonAlpha = .Replace(Replace(TextToReplace, "-", Chr(32)), End With 

我可以比较两个string,原始代码和剥离的特殊字符之一。 如果他们不匹配,那么它包含一个特殊的字符,是无效的。

这是造成我的问题的空间。 我必须检查左alignment(没有前导空格后跟字符),没有embedded空格,尾随空格是好的。

我已经尝试了上述function的一些变化,但无济于事。

例如(错误):

 (^\sa-zA-Z0-9\sa-zA-Z0-9)+ 

我会很感激任何指针。 如果有更多的“多合一”的正则expression式更有意义,那么这将是非常好的,如果正则expression式是错误的,那么我很乐意放弃它们。

部分答案:

演示

正则expression式: (?=[a-zA-Z0-9\s]{6})[a-zA-Z0-9]*\s*

缺点:匹配> 6个字符(但不能less于6个)