【发布时间】:2014-08-28 08:05:08
【问题描述】:
我必须解析一个巨大的文件,但其中一个值让我很伤心。
这是一个固定长度的六个字符的字段。允许值的说明是:
左对齐;空间填满。不能包含特殊字符或嵌入空格。如果数据不可用,则空间已满。
到目前为止我所做的是检查:
If Code = " " Then
MsgBox "Code is Space Filled."
这将检查是否所有空间都已填满,这没关系。
接下来我使用以下函数检查是否有任何特殊字符:
With ObjRegex
.Global = True
.Pattern = "[^a-zA-Z0-9\s]+"
StripNonAlpha = .Replace(Replace(TextToReplace, "-", Chr(32)),
End With
我可以比较两个字符串,一个是原始代码,一个是去除特殊字符。如果它们不匹配,则它包含一个特殊字符并且无效。
这是导致我问题的空间。我必须检查左对齐(没有前导空格后跟字符)并且没有嵌入空格,尾随空格是可以的。
我尝试了上述功能的一些变体,但无济于事。
例如(错误):
(^\sa-zA-Z0-9\sa-zA-Z0-9)+
我将不胜感激任何指针。如果有一个更“多合一”的正则表达式更有意义,那就太好了,如果正则表达式是错误的方法,我非常高兴很乐意放弃它们。
【问题讨论】: