ВБА Регек

Преглед садржаја

Овај водич ће показати како се користи Регек у ВБА.

Шта је Регек?

Регек означава регуларни израз. Регуларни израз је образац састављен од низа знакова које можете користити за проналажење одговарајућег обрасца у другом низу. Да бисте користили Регек у ВБА морате користити објекат РегЕкп.

Узорак као што је [А-Ц] може се користити за тражење и подударање великих слова од А до Ц из низа. Регек обрасци имају своју синтаксу и могу се направити помоћу знака или низа знакова.

Подударање знакова

Следећа табела приказује синтаксу која ће вам омогућити да направите Регек обрасце.

Паттерн Синтак Опис Пример Пронађена подударања
. Подудара се са било којим знаком осим вбНевЛине ф.н фан, фон, ф@н, фвн
[ликови] Подудара се са било којим знаком између заграда [] [фн] Одговарало би само „ф“ или „н“ у вентилатору
[^ликови] Подудара се са било којим знаком који није између заграда [] [^фн] Тако би се подударало са „ј“ у „фјн“
[почетак-крај] Одговара сваком знаку који је део опсега у заградама [] [1-5] Одговарало би „4“ и „5“ у „45“
\ в Одговара алфанумеричким знаковима и доњој црти, али не и размаку \ в Одговарало би „ц“ у „, ц“.
\ В Одговара свим алфанумеричким знаковима и доњој црти \ В Одговарало би „@“ у „бб@бб“
\ с Подудара се са било којим размаком, као што су размаци и картице \ с Одговарало би “” у “Ово је”
\ С Подудара се са било којим размаком који није бели \ С Одговарало би „Т“ и „х“ у „Т х“
\ д Одговара било којој појединачној децималној цифри \ д Одговарало би „7“ у „а7х“
\ Д Подудара се са једном појединачном цифром која није децимална \ Д Одговарало би ј у „47ј“
\ Бежи од посебних знакова што вам омогућава да их тражите \. Одговарало би „.“ у „59.пК“
\ т Таб \ т Одговара ли табулатору
\ р Превоз Повратак \ р Одговара враћању носача (вбЦр)
\ н вбНевЛине (вбТаб) \ н Одговарао би новој линији

Квантификатори

Помоћу квантификатора можете одредити колико пута желите да се узорак подудара са низом.

Квантификатор Опис Пример Пронађена подударања
* Подудара се са нулом или више појављивања фн*а фна, фа, фнна, фннна, фнфннна
+ Подудара се са једним или више појављивања фн+а фна, фнна, фнфнна
? Подудара се са нулом или јединицом фн? а фа, фна
{н} Подудара се са „н“ више пута д \ В {4} Одговарало би „д…“. у „д…. & 5хи“
{н,} Подудара се најмање „н“ број пута д \ В {4,} Одговарало би „д…. &“ У „д…. & 5хи“
{н, м} Подудара се између н и м број пута д \ В {1,8} Одговарало би „д…. &&&&“ у „д…. &&&& 5хи“

Груписање

Груписање или хватање вам омогућава да користите образац за хватање и издвајање дела низа. Дакле, не само да се образац подудара, већ се хвата и део низа који одговара узорку.

Шаблон Опис Пример Пронађена и снимљена подударања
(израз) Групира и снима образац у загради (\ В {4}) Да ли би груписао и снимио „@@@@“ са „1 @@@@ 1јлмба“

Како се користи Регек у ВБА

Да бисте користили Регек у ВБА, прво морате поставити референцу у ВБЕ уређивачу. У уређивачу ВБЕ идите на Алатке> Референце> Мицрософт ВБСцрипт регуларни изрази.

Ово су својства објекта РегЕкп:

  • Шаблон - Узорак који ћете користити за усклађивање са низом.
  • ИгнореЦасе - Ако је Тачно, онда се подударање занемарује велика и мала слова.
  • Глобално - Ако је Тачно, тада се проналазе сва подударања узорка у низу. Ако је Нетачно, тада се налази само прво подударање.
  • МултиЛине - Ако је Тачно, подударање шаблона се дешава преко прелома редова.

Ово су методе објекта РегЕкп:

  • Тест - Тражи образац у низу и враћа Труе ако се пронађе подударање.
  • Заменити - Замјењује појављивања узорка замјенским низом.
  • Извршити - Враћа подударања узорка у низ.

Тестирање узорка за подударање са низом

Помоћу методе Тест можете проверити да ли се узорак подудара са низом у улазном низу. Резултат је Тачан ако се пронађе подударање. Следећи код ће вам показати како тестирати образац у низу:

12345678910111213 Суб РегекТестингАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "ф… .а"стрингОне = "000111фјо88а8"Дебуг.Принт регекОне.Тест (стрингОне)Енд Суб

Резултат је:

Замена узорка у низу

Помоћу методе Реплаце можете заменити прву инстанцу одговарајућег узорка у низу или све инстанце одговарајућег обрасца у низу. Ако је Глобално постављено на Нетачно, замјењује се само прва инстанца. Следећи код ће вам показати како да замените образац у низу:

1234567891011 Суб РегекРеплацингАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "Ово је број"регекОне.Глобал = НетачнострингОне = "Ово је број 718901"Дебуг.Принт регекОне.Реплаце (стрингОне, "То је нови број")Енд Суб

Резултат је:

Да бисте заменили само бројчани део низа који је коришћен горе, користили бисте следећи код:

1234567891011 Суб РегекРеплацингАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "[^\ Д]+"регекОне.Глобал = НетачнострингОне = "Ово је број 718901"Дебуг.Принт регекОне.Реплаце (стрингОне, "777192")Енд Суб

Резултат је:

Да бисте заменили сваку инстанцу одређеног обрасца у низу, поставили бисте глобалну вредност на Труе. Следећи код вам показује како да замените сваку инстанцу -А1289Ц- у низу:

1234567891011 Суб РегекРеплацингЕвериИнстанцеОфАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "\ В \ А \ д+Ц \ В"регекОне.Глобал = ТачнострингОне = "АБЦ-А1289Ц-АБЦ-А1289Ц-АБЦ"Дебуг.Принт регекОне.Реплаце (стрингОне, "ИЈК")Енд Суб

Усклађивање и приказивање узорка у низу

Можете користити методу Екецуте за подударање једне или свих инстанци узорка унутар низа. Следећи код вам показује како да упоредите и прикажете све инстанце узорка из низа:

123456789101112131415161718 Суб РегекМатцхингАндДисплаиингАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "А.Ц"регекОне.Глобал = ТачнорегекОне.ИгнореЦасе = ИгнореЦасестрингОне = "АБЦ-А1289Ц-АДЦ-А1289Ц-АЈЦ"Подесите Матцхес = регекОне.Екецуте (стрингОне)За сваку утакмицу у утакмицамаДебуг.Принт Матцх.ВалуеСледећиЕнд Суб

Резултат је:

Рецимо да смо само желели да упаримо -АДЦ- из горњег низа. Следећи код показује како да упарите и прикажете само -АДЦ- из низа:

123456789101112131415161718 Суб РегекМатцхингАндДисплаиингАПаттерн ()Дим стрингОне Ас СтрингДим регекОне Ас ОбјецтПостави регекОне = Нови РегЕкпрегекОне.Паттерн = "\-\ А.Ц \-"регекОне.Глобал = НетачнорегекОне.ИгнореЦасе = ИгнореЦасестрингОне = "АБЦ-А1289Ц-АДЦ-А1289Ц-АЕЦ"Подесите Матцхес = регекОне.Екецуте (стрингОне)За сваку утакмицу у утакмицамаДебуг.Принт Матцх.ВалуеСледећиЕнд Суб

Регексу може требати неко време да научи, али то је изузетно моћан алат за идентификовање/манипулисање низовима текста. Такође се широко користи у програмским језицима.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave