Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Excel VBA中的正则表达式特殊字符和嵌入空格_Regex_Vba_Excel - Fatal编程技术网

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