Мне нужно разобрать огромный файл, но одно из значений вызывает у меня много горя.Регулярное выражение в Excel Специальные символы VBA и вложенные пространства
Это поле фиксированной длины из шести символов. Описание допустимых значений:
Оставленный под конец; пространство заполнено. Не может содержать специальные символы или встроенные пробелы. Если данные недоступны, пространство заполняется.
То, что я пытался до сих пор, чтобы проверить:
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)+
Я был бы признателен за любые указания. Если существует более «все в одном» регулярном выражении, что имеет больше смысла, что было бы здорово, и если регулярное выражение - неправильный способ пойти, я более чем счастлив счастлив оставить их.
Большого спасибо за это, я буду работайте над этим отсюда, хотя, честно говоря, это выглядит довольно хорошо. Он ВСЕГДА будет шестью символами, если отсутствует какой-либо файл, поврежден, и это даже не начнет применяться. :) – RossC