Агуулгын хүснэгт
Excel томъёонд ердийн илэрхийлэл яагаад дэмжигддэггүйг хэзээ ч ойлгохгүй байна уу? Одоо бол :) Манай тусгай функцүүдийн тусламжтайгаар та тодорхой загварт тохирох мөрүүдийг хялбархан олох, солих, задлах, устгах боломжтой.
Анхны харцаар Excel-д текст мөрт хэрэгтэй бүх зүйл бий. заль мэх. Хмм… ердийн хэллэгийг яах вэ? Өө, Excel-д суулгасан Regex функц байхгүй байна. Гэхдээ хэн ч бид өөрсдийгөө бүтээж чадахгүй гэж хэлдэггүй :)
Тогтмол илэрхийлэл гэж юу вэ?
Тогтмол илэрхийлэл ( regex эсвэл <8 гэх мэт)>regexp ) нь хайлтын загварыг тодорхойлсон тэмдэгтүүдийн тусгайлан кодлогдсон дараалал юм. Энэ хэв маягийг ашигласнаар та тэмдэгтийн тэмдэгтийн хослолыг тэмдэгт мөрнөөс олох эсвэл өгөгдлийн оролтыг баталгаажуулах боломжтой. Хэрэв та орлуулагч тэмдэгтийн талаар сайн мэддэг бол регексийг орлуулагч тэмдэгтүүдийн дэвшилтэт хувилбар гэж үзэж болно.
Энгийн илэрхийлэл нь тусгай тэмдэгт, оператор, бүтцээс бүрдэх өөрийн гэсэн синтакстай байдаг. Жишээлбэл, [0-5] нь 0-ээс 5 хүртэлх нэг оронтой тоотой таарч байна.
Ердийн хэллэгийг JavaScript болон VBA зэрэг програмчлалын олон хэлэнд ашигладаг. Сүүлийнх нь тусгай RegExp объекттой бөгөөд бид үүнийг захиалгат функцүүдийг бий болгоход ашиглах болно.
Excel нь regex-ийг дэмждэг үү?
Харамсалтай нь Excel-д суулгасан Regex функц байхгүй байна. Томьёондоо ердийн илэрхийлэл ашиглахын тулд та өөрийн хэрэглэгчийн тодорхойлсон функцийг (VBA) үүсгэх хэрэгтэй.аргументууд:
=IF(RegExpMatch(A5, $A$2), "Yes", "No")
Дэлгэрэнгүй томьёоны жишээг үзнэ үү:
- Хэрхэн энгийн илэрхийлэл ашиглан мөрүүдийг тааруулах вэ
- Регекс бүхий Excel-ийн өгөгдлийг баталгаажуулах
Excel Regex Extract функц
RegExpExtract функц нь ердийн илэрхийлэлтэй тохирох дэд мөрүүдийг хайж, бүх тохирохыг задлах эсвэл тодорхой таарч байна.
RegExpExtract(текст, загвар, [жишээний_тоо], [тохируулах_цэрэг])Хаана:
- Текст (шаардлагатай) - хайх текстийн мөр in.
- Загвар (шаардлагатай) - тохирох тогтмол илэрхийлэл.
- Жишээний_тоо (заавал биш) - аль жишээг зааж өгөх серийн дугаар. ханд. Хэрэв орхигдуулсан бол олдсон бүх тохирохыг буцаана (өгөгдмөл).
- Тохирох_хэрэгслэл (заавал биш) - тохирох (ҮНЭН эсвэл орхигдуулсан) эсвэл үл тоомсорлох (БУДАЛ) эсэхийг тодорхойлно.
Та функцийн кодыг эндээс авах боломжтой.
Жишээ нь: энгийн илэрхийлэл ашиглан мөрүүдийг хэрхэн задлах вэ
Жишээгээ бага зэрэг авч үзвэл нэхэмжлэхийн дугааруудыг гаргаж авъя. Үүний тулд бид дурын 7 оронтой тоотой таарах маш энгийн regex ашиглах болно:
Загвар : \b\d{7}\b
Put A2 дээрх хээг оруулснаар та энэхүү авсаархан бөгөөд гоёмсог томьёо ашиглан ажлаа дуусгах болно:
=RegExpExtract(A5, $A$2)
Хэрэв хээ таарсан бол томъёо нь нэхэмжлэхийн дугаарыг гаргаж авдаг, хэрэв тохирох зүйл олдохгүй бол - юу ч буцаагдаагүй байна.
Дэлгэрэнгүй жишээг үзнэ үү: Excel дээр мөрүүдийг хэрхэн задлах талаарregex ашиглаж байна.
Excel Regex Replace функц
RegExpReplace функц нь таны заасан тексттэй регекст тохирох утгуудыг орлоно.
Хаана:
- Текст (шаардлагатай) - хайх текстийн мөр.
- Загвар (шаардлагатай) - тохирох тогтмол илэрхийлэл.
- Орлуулах (шаардлагатай) - тохирох дэд мөрүүдийг солих текст.
- Жишээний_тоо (заавал биш) - солих жишээ. Өгөгдмөл нь "бүх таарч байна".
- Тохирох_хэрэгслэл (заавал биш) - тохирох (ҮНЭН эсвэл орхигдсон) эсвэл үл тоомсорлох (ХУДАЛ) эсэхийг хянадаг.
Функцийн кодыг эндээс авах боломжтой.
Жишээ нь: regexes ашиглан мөрүүдийг хэрхэн солих, устгах тухай
Манай зарим бүртгэлд зээлийн картын дугаар орсон байдаг. Энэ мэдээлэл нь нууц бөгөөд та үүнийг ямар нэг зүйлээр солих эсвэл бүрмөсөн устгахыг хүсч болно. Энэ хоёр ажлыг RegExpReplace функцийн тусламжтайгаар гүйцэтгэж болно. Хэрхэн? Хоёрдахь хувилбарт бид хоосон тэмдэгт мөрөөр солигдох болно.
Манай жишээ хүснэгтэд бүх картын дугаарууд 16 оронтой бөгөөд тэдгээрийг 4 бүлэгт хоосон зайгаар бичсэн байна. Тэдгээрийг олохын тулд бид энэ ердийн илэрхийлэлийг ашиглан хэв маягийг хуулбарлана:
Хээ : \b\d{4} \d{4} \d{4} \d{4}\ b
Солихдоо дараах мөрийг ашиглана:
Орлуулах : XXXX XXXX XXXXXXXX
Кредит картын дугаарыг мэдрэмжгүй мэдээллээр орлуулах бүрэн томьёо энд байна:
=RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")
Тусдаа нүднүүдэд регекс болон солих тексттэй ( A2 ба B2) томъёо нь адилхан сайн ажилладаг:
Excel-д "арилгах" нь "орлуулах" тодорхой тохиолдол юм. Зээлийн картын дугаарыг хасах бол орлуулах аргументыг хоосон мөр ("") ашиглана уу:
=RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")
Зөвлөмж. Үр дүнгийн хоосон мөрүүдийг тохируулахын тулд та энэ жишээнд үзүүлсэн шиг өөр RegExpReplace функцийг ашиглаж болно: Regex ашиглан хоосон мөрүүдийг хэрхэн арилгах талаар.
Дэлгэрэнгүй мэдээллийг:
- <-аас үзнэ үү. 24>Excel дээр regex ашиглан мөрүүдийг хэрхэн солих вэ
- Регекс ашиглан мөрийг хэрхэн арилгах вэ
- Регекс ашиглан хоосон зайг хэрхэн арилгах вэ
Тохирох, задлах Regex хэрэгслүүд , дэд мөрүүдийг солих, устгах
Манай Ultimate Suite-ийн хэрэглэгчид ажлын дэвтэртээ нэг мөр код оруулахгүйгээр ердийн илэрхийллийн бүх хүчийг авах боломжтой. Шаардлагатай бүх кодыг манай хөгжүүлэгчид бичиж, суулгах явцад Excel-д нэгтгэсэн болно.
Дээр дурдсан VBA функцүүдээс ялгаатай нь Ultimate Suite-ийн функцууд нь .NET дээр суурилсан бөгөөд энэ нь үндсэн хоёр давуу талтай:
- Та ердийн .xlsx ажлын дэвтэрт VBA код нэмэлгүйгээр, тэдгээрийг макро идэвхжүүлсэн файл болгон хадгалахгүйгээр энгийн илэрхийллийг ашиглаж болно.
- .NET Regex хөдөлгүүр нь сонгодог хувилбарыг бүрэн дэмждэг.ердийн илэрхийллүүд нь танд илүү боловсронгуй хэв маягийг бүтээх боломжийг олгодог.
Excel-д Regex-ийг хэрхэн ашиглах вэ
Ultimate Suite суулгасан үед Excel-д ердийн илэрхийлэл ашиглах нь эдгээр хоёр алхамтай адил хялбар юм. :
- Ablebits Data табын Text бүлгийн Regex Tools дээр товшино уу.
- Regex Tools самбар дээр дараах зүйлийг хийнэ үү:
- Эх өгөгдлийг сонгоно уу.
- Өөрийн regex загварыг оруулна уу.
- Хүссэн сонголтоо сонгоно уу: Тааруулах , Задлах , Устгах эсвэл Орлуулах .
- Үр дүнг дараах байдлаар авахын тулд томьёо биш, харин Томъёо болгон оруулах хайрцгийг сонго.
- Үйл ажиллагааны товчийг дарна уу.
Жишээлбэл, нүднүүдээс кредит картын дугаарыг устгах бол A2:A6, бид эдгээр тохиргоог хийж байна:
АбlebitsRegex функцийг таны эхийн баруун талд байгаа шинэ баганад гурвалсан байдлаар оруулах болно. өгөгдөл. Манай тохиолдолд томьёо нь:
=AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")
Томъёо нэгэнт байгаа бол та ямар ч эх томьёоны адил засварлах, хуулах эсвэл зөөх боломжтой.
Рэгексийн томьёог нүдэнд шууд оруулах
AblebitsRegex функцийг нэмэлтийн интерфейсийг ашиглахгүйгээр нүдэнд шууд оруулах боломжтой. Үүнд:
- Томьёоны мөр дээрх fx товчийг эсвэл Томъёо таб дээрх Функц оруулах дээр дарна уу.
- Функц оруулах харилцах цонхноос AblebitsUDFs -г сонгоно уу.категорийг сонгоод, сонирхсон функцээ сонгоод OK товчийг дарна уу.
- Ердийн хийдэг шиг функцийн аргументуудыг тодорхойлж, OK дээр дарна уу. Дууслаа!
Дэлгэрэнгүй мэдээллийг Excel-д зориулсан Regex Tools-оос үзнэ үү.
Ингэж Excel нүдн дэх текстийг тааруулах, задлах, солих, арилгахын тулд ердийн илэрхийллийг ашиглах боломжтой. Уншиж байгаад баярлалаа, ирэх долоо хоногт манай блог дээр уулзахыг тэсэн ядан хүлээж байна!
Татаж авах боломжтой зүйлс
Excel Regex - томъёоны жишээ (.xlsm файл)
Ultimate Suite - туршилтын хувилбар (.exe файл)
эсвэл .NET дээр суурилсан) эсвэл регексийг дэмждэг гуравдагч талын хэрэгслүүдийг суулгаж болно.Excel Regex cheat page
Регекс загвар нь маш энгийн эсвэл маш боловсронгуй эсэхээс үл хамааран нийтлэг синтакс ашиглан бүтээгдсэн. Энэхүү заавар нь танд байнгын хэллэгийг заах зорилго агуулаагүй. Үүний тулд эхлэгчдэд зориулсан үнэ төлбөргүй зааварчилгаанаас эхлээд ахисан түвшний хэрэглэгчдэд зориулсан дээд зэрэглэлийн курс хүртэл маш олон эх сурвалж онлайн байна.
Доор бид RegEx-ийн үндсэн загваруудын талаар товч лавлагаа өгсөн бөгөөд энэ нь танд үндсэн ойлголтуудыг ойлгоход тусална. Энэ нь цаашдын жишээнүүдийг судлахад таны хууран мэхлэх хуудас болж магадгүй юм.
Хэрэв та ердийн илэрхийлэлд сэтгэл хангалуун байвал RegExp функцууд руу шууд очиж болно.
Тэмдэгтүүд
Эдгээр нь тодорхой тэмдэгтүүдийг тааруулахын тулд хамгийн их ашиглагддаг загварууд юм.
Загвар | Тайлбар | Жишээ | Тохирох |
. | Зохиолдолын тэмдэгт: мөр таслахаас бусад ганц тэмдэгттэй таарна | .ot | цэг , халуун , сав , @ot |
\d | Циент тэмдэг: дурын нэг оронтой 0-ээс 9 хүртэл | \d | a1b -д 1 |
\D<таарч байна 15> | Цифр биш аливаа тэмдэгт | \D | a1b -д a ба b<2 таарч байна> |
\s | Хоосон зайны тэмдэгт: хоосон зай, таб, шинэ мөр, мөр буцах | .\s. | Дотор 3 цент , таарч байна 3 c |
\S | Аливаахоосон зайгүй тэмдэгт | \S+ | 30 цент -д 30 ба цент |
\w | Үгийн тэмдэгт: дурын ASCII үсэг, цифр эсвэл доогуур зураас | \w+ | 5_cats*** дотор, таарч байна 5_муур |
\W | Үсэг, тоон тэмдэгт БИШ эсвэл доогуур зураасан тэмдэгт | \W+ | 5_муур*** дотор *** |
\t | Таб | <14 таарч байна>||
\n | Шинэ мөр | \n\d+ | Хоёр мөрөнд доорх мөр, 10 5 мууртай тохирно 10 нохой |
\ | Тэмдэгтийн тусгай утгаас зугтдаг тул та үүнийг хай | \. \w+\. | Цэгээс зайлсхийснээр "" гэсэн үгийн утгыг олох боломжтой. тэмдэгт тэмдэгт Ноён , Хатагтай , Проф. |
Тэмдэгтийн ангиуд
Эдгээр хэв маягийг ашигласнаар та өөр өөр тэмдэгтийн элементүүдийг тааруулж болно.
Загвар | Тодорхойлолт | Жишээ нь | Тохирох |
[тэмдэгтүүд] | Хаалтанд байгаа дурын тэмдэгттэй таарч байна | d[oi]g | нохой ба диг |
[^тэмдэгт] | Хаалтанд БИШ дан тэмдэгттэй тохирно | d[^oi]g | даг, дуг , d1g нохой ба <-тай таарахгүй 1>ухах |
[from–to] | Тэмдэгтийн хоорондох муж дахь дурын тэмдэгттэй таарна.хаалт | [0-9] [a-z] [A-Z] | 0-ээс 9 хүртэлх нэг оронтой тоо Ямар ч жижиг үсэг Аливаа нэг том үсэг |
Тоо хэмжээ илэрхийлэгч
Тоон илэрхийлэгч нь тохирох тэмдэгтүүдийн тоог тодорхойлдог тусгай илэрхийллүүд юм. Хэмжигч нь өмнөх тэмдэгтэд үргэлж хэрэгждэг.
Загвар | Тодорхойлолт | Жишээ | Тохирох |
* | Тэг буюу түүнээс дээш тохиолдол | 1a* | 1, 1a , 1aa, 1aaa гэх мэт. |
+ | Нэг буюу хэд хэдэн тохиолдол | po+ | тогоонд , таарч байна po муу , таарч байна poo |
? | Тэг эсвэл нэг тохиолдол | roa?d | зам, саваа |
*? | Тэг эсвэл түүнээс олон тохиолдол, гэхдээ аль болох цөөн | 1a*? | 1a , 1aa болон 1aaa -д таарч байна 1a |
+? | Нэг буюу хэд хэдэн тохиолдол, гэхдээ аль болох цөөн | po+? | сав ба муу -д po |
таарч байна уу? | Тэг эсвэл нэг тохиолдол , гэхдээ аль болох бага | roa?? | зам ба саваа -д ro | <таарч байна. 16>
{n} | Өмнөх загвартай n удаа таарч байна | \d{3} | Яг 3 оронтой |
{n ,} | Өмнөх загвартай n ба түүнээс дээш удаа таарч байна | \d{3,} | 3 буюу түүнээс дээш цифр |
{n,m} | -тай таарч байнаөмнөх хэв маягийг n ба m үржүүлэх | \d{3,5} | 3-аас 5 оронтой |
Бүлэглэх
Бүлэглэх бүтцийг эх мөрөөс дэд мөрийг авахад ашигладаг тул та түүгээр зарим үйлдлийг гүйцэтгэх боломжтой.
Синтакс | Тодорхойлолт | Жишээ | Тохирох |
(загвар) | Загвар авах бүлэг: тохирох дэд мөрийг барьж, түүнд дарааллын дугаар өгнө | (\d+) | 5 муур, 10 нохой -д 5 (1-р бүлэг) болон 10 (2-р бүлэг) |
(?:pattern) | Болдоггүй бүлэг: бүлэгтэй таарч байгаа боловч түүнийг барьж авдаггүй | (\d+)(?: нохой) | 5 муур, 10 нохой -д 10 |
\1 | Бүлгийн агуулгыг агуулна. 1 | (\d+)\+(\d+)=\2\+\1 | 5+10=10+5 -д таарч, 5-г авдаг Баривчлах бүлгүүдэд байгаа ба 10 |
\2 | 2-р бүлгийн агуулга |
Зангуу
Зангуу нь оролтын мөрөнд хаана хайхыг зааж өгдөг. таарч байна.
Зангуу | Тодорхойлолт | Жишээ | Тоглолт |
^ | Мөрийн эхлэл Тэмдэглэл: [^хаалтны доторх] нь "биш" гэсэн утгатай | ^\d+ | Тэмдэглэл дэх ямар ч тооны цифр мөрийн эхлэл. 5 муур, 10 нохой -д 5 |
$ | <14 таарч байна>Мөрийн төгсгөл\d+$ | Мөрийн төгсгөлд дурын тооны цифр. 10-дҮ | |
(?<=) | Эерэг харагдах байдал | (?<=Y)X | Х илэрхийлэлтэй таарч байна өмнө нь Y байвал (өөрөөр хэлбэл X-ийн ард Y байвал) |
(? | Сөрөг харагдах | (? <) 14>Х илэрхийлэлийн өмнө Y-ээр ороогүй үед таарч байна |
Одоо та үндсэн зүйлсийг мэдэж байгаа тул хамгийн сонирхолтой хэсэг рүүгээ орцгооё. мөрүүдийг задлан шинжилж, шаардлагатай мэдээллийг олохын тулд бодит өгөгдөл дээрх regexs. Хэрэв танд синтаксийн талаар дэлгэрэнгүй мэдээлэл хэрэгтэй бол Тогтмол илэрхийллийн хэлний талаархи Microsoft гарын авлага тустай байж магадгүй.
Excel-д зориулсан тусгай RegEx функцууд
Өмнө дурьдсанчлан, Microsoft Excel-д суулгасан RegEx функц байхгүй. Тогтмол илэрхийллийг идэвхжүүлэхийн тулд бид гурван тусгай VBA функцийг (хэрэглэгчийн тодорхойлсон функц) үүсгэсэн. Та доорх холбоос бүхий хуудаснаас эсвэл манай жишээнээс кодыг хуулж болно. ажлын дэвтэр, дараа нь өөрийн Excel файлууддаа буулгана уу.
VBA RegExp функцууд хэрхэн ажилладаг вэ
Энэ хэсэг нь дотоод механикуудыг тайлбарлах ба int байж болно. Backend дээр яг юу болдгийг мэдэхийг хүссэн хүмүүст зориулсан.
VBA-д ердийн илэрхийлэл ашиглаж эхлэхийн тулд та RegEx объектын лавлах санг идэвхжүүлэх эсвэл CreateObject функцийг ашиглах хэрэгтэй. VBA засварлагчийн лавлагааг тохируулахад бэрхшээл учруулахгүйн тулд бид сүүлийн аргыг сонгосон.
RegExp объект нь 4 шинж чанартай:
- Загвар - ньОролтын мөрөнд тааруулах загвар .
- Глобал - оролтын мөр дэх бүх тохирохыг эсвэл эхнийхийг нь олох эсэхийг хянадаг. Манай функцуудад бүх тохирохыг авахын тулд үүнийг Үнэн гэж тохируулсан.
- Олон мөр - олон мөрт мөр дэх мөрийн завсарлагаан дээрх загварыг тааруулах уу эсвэл зөвхөн тохирох эсэхийг тодорхойлно. эхний мөрөнд. Манай кодуудад мөр бүрээс хайхын тулд True гэж тохируулсан.
- IgnoreCase - ердийн илэрхийлэл нь том жижиг үсгээр ялгах (өгөгдмөл) эсвэл том жижиг үсгийг ялгах эсэхийг тодорхойлно- мэдрэмжгүй (Үнэн гэж тохируулсан). Манай тохиолдолд энэ нь та нэмэлт тэмцэх_тохиолдол параметрийг хэрхэн тохируулахаас хамаарна. Анхдагч байдлаар, бүх функцууд нь үсгийн томрол мэдрэмжтэй байна.
VBA RegExp хязгаарлалтууд
Excel VBA нь үндсэн regex загваруудыг хэрэгжүүлдэг боловч олон дэвшилтэт функцүүд дутагдалтай байдаг. .NET, Perl, Java болон бусад regex хөдөлгүүрт ашиглах боломжтой. Жишээ нь, VBA RegExp нь жижиг жижиг үсгээр тохирох (?i) эсвэл олон мөрт горимд (?m) харагдуулах, POSIX ангиуд гэх мэт мөрийн хувиргагчийг дэмждэггүй.
Excel Regex. Тохирох функц
RegExpMatch функц нь ердийн илэрхийлэлтэй таарч байгаа текстийг оролтын стрингээс хайж олох бөгөөд хэрэв тохирох нь олдвол ҮНЭН, үгүй бол ХУДАЛ гэж буцаана.
RegExpMatch(текст, загвар, [ match_case])Хаана:
- Текст (шаардлагатай) - хайх нэг буюу хэд хэдэн мөр.
- Загвар ( шаардлагатай) - тогтмолтохирох илэрхийлэл.
- Тохирох_тохиолдол (заавал биш) - тохирох төрөл. ҮНЭН эсвэл орхигдуулсан - том жижиг жижиг үсэг; ХУДАЛ - том жижиг үсгийн харгалзахгүй
Функцийн код энд байна.
Жишээ нь: мөрийг тааруулахын тулд ердийн илэрхийллийг хэрхэн ашиглах
Доорх өгөгдлийн багцад та хүссэн гэж бодъё. SKU код агуулсан оруулгуудыг тодорхойлохын тулд.
SKU бүр 2 том үсгээр эхэлж, зураас, 4 цифрээр эхэлдэг тул та дараах илэрхийллийг ашиглан тэдгээрийг тааруулж болно.
Загвар : \b[A-Z]{2}-\d{4}\b
Энд [A-Z]{2} нь А-аас Я хүртэлх дурын 2 том үсэг ба \d{4 гэсэн үг } гэдэг нь 0-ээс 9 хүртэлх дурын 4 орон гэсэн үг. Үгийн хил \b нь SKU нь том мөрийн хэсэг биш, тусдаа үг гэдгийг илэрхийлнэ.
Загвар тохируулсны дараа ердийнх шигээ томьёог бичиж эхлээрэй. , мөн функцын нэр Excel-ийн Автоматаар гүйцээх санал болгосон жагсаалтад гарч ирнэ:
Эх мөрийг A5-д байгаа гэж үзвэл томъёо дараах байдалтай байна:
=RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")
Тохиромжтой болгохын тулд та ердийн илэрхийллийг тусдаа нүдэнд оруулж, загвар аргументын үнэмлэхүй лавлагаа ($A$2) ашиглаж болно. т. Энэ нь томьёог бусад нүд рүү хуулах үед нүдний хаяг өөрчлөгдөхгүй байх баталгаа болно:
=RegExpMatch(A5, $A$2)
Үнэн ба ХУДАЛ-ын оронд өөрийн бичвэрийн шошгыг харуулахын тулд IF функцэд RegExpMatch-г оруулаарай. үнэн_хэрэв_утга ба худал_хэрэв_утга хэсэгт хүссэн текстээ зааж өгнө үү.нэмэх 5 нь 15 -ийг өгч, 15-тай тохирч байна
Элгээлтийн (OR) бүтээх
Хувцасны операнд нь OR логикийг идэвхжүүлдэг тул та энэ эсвэл тэр элементтэй таарч болно.
Бүтэц | Тодорхойлолт | Жишээ | Тоглолт |