регулярное выражение в VBA Excel ищет группы из строки - PullRequest
0 голосов
/ 17 сентября 2009

В настоящее время я работаю над проектом vba, в котором конечный пользователь копирует / вставляет длинные строки текст в лист и код для анализа данных из мусора в этих строках и организовать это от них.

Строки всегда будут разной длины и иметь разное количество пробелов между данными. Однако они всегда будут группироваться одинаково (т. Е. Сначала идет цена, некоторое свободное место, цена за единицу, некоторое пустое пространство и идентификационный номер). Есть ли регулярное выражение, которое просто вытянет группы (и буквы, и цифры) из пробела?

Ответы [ 3 ]

2 голосов
/ 17 сентября 2009

Если вы просто хотите удалить последовательные разделители пробелов, вы можете использовать Text To Columns.

MyRange.TextToColumns Destination:=MyRange.Cells(1), _ DataType:=xlDelimited, _ ConsecutiveDelimiter:=True, _ Space:=True

Тогда вы могли бы читать свои значения из ячеек целевого диапазона, MyRange.Cells (1) .CurrentRegion

2 голосов
/ 17 сентября 2009

В VBA:

Split(inputstring)

Вы также можете установить другой разделитель, но он по умолчанию использует пробел.

Этот дубликат имеет немного больше информации.

1 голос
/ 17 сентября 2009

Я не знаю, как работает синтаксис re в Excel VBA, но в python (который похож на PERL) простейшим регулярным выражением будет:

\S+

Это будет соответствовать любой последовательности непробельных символов, и в python я использовал бы метод findall, чтобы получить все совпадения из документа.

Если в Excel VBA нет простого способа сделать это, я бы от всей души порекомендовал отказаться от Excel для python (но я признаю, что Excel великолепен и его легко разбирать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...