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个)