Regex Excel VBA中的正则表达式特殊字符和嵌入空格
我必须解析一个巨大的文件,但其中的一个值让我非常难过 它是一个六个字符的固定长度字段。允许值的说明如下: 左对齐;空间被填满了。不能包含特殊字符或嵌入空格。如果数据不可用,则填充空间 到目前为止,我试图检查:Regex Excel VBA中的正则表达式特殊字符和嵌入空格,regex,vba,excel,Regex,Vba,Excel,我必须解析一个巨大的文件,但其中的一个值让我非常难过 它是一个六个字符的固定长度字段。允许值的说明如下: 左对齐;空间被填满了。不能包含特殊字符或嵌入空格。如果数据不可用,则填充空间 到目前为止,我试图检查: If Code = " " Then MsgBox "Code is Space Filled." 这将检查是否所有空间都已填满,这是正常的 接下来,我使用以下函数检查是否存在任何特殊字符: With ObjRegex .Global = True .
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
我可以比较两个字符串,原始代码和去除特殊字符的字符串。如果它们不匹配,则它包含特殊字符且无效
正是这些空间给我带来了问题。我必须检查左对齐(没有前导空格后跟字符)和没有嵌入空格,尾随空格可以
我尝试了上述函数的一些变体,但没有效果
e、 g.(错误):
如果有任何指示,我将不胜感激。如果有一个更“合一”的正则表达式更有意义,那就太好了,如果正则表达式走错了路,我非常乐意放弃它们。部分答案:
正则表达式:(?=[a-zA-Z0-9\s]{6})[a-zA-Z0-9]*\s*
缺点:它将匹配>6个字符(但不少于6个)非常感谢您,我将从这里开始处理它,不过说实话,它看起来非常棒。它将始终为六个字符,如果缺少任何字符,则整个文件已损坏,甚至无法开始应用该文件。:)
(^\sa-zA-Z0-9\sa-zA-Z0-9)+