តារាងមាតិកា
មិនអាចយល់បានទេថាហេតុអ្វីបានជាកន្សោមធម្មតាមិនត្រូវបានគាំទ្រក្នុងរូបមន្ត Excel? ឥឡូវនេះ ពួកវាគឺ :) ជាមួយនឹងមុខងារផ្ទាល់ខ្លួនរបស់យើង អ្នកអាចស្វែងរក ជំនួស ស្រង់ចេញ និងខ្សែអក្សរដែលផ្គូផ្គងនឹងលំនាំជាក់លាក់បានយ៉ាងងាយស្រួល។
នៅពេលមើលឃើញដំបូង Excel មានអ្វីគ្រប់យ៉ាងដែលអ្នកត្រូវការសម្រាប់ខ្សែអក្សរ។ ឧបាយកល ហឺម… ចុះការបញ្ចេញមតិធម្មតាវិញ? អូ៎ មិនមានមុខងារ Regex ដែលមានស្រាប់នៅក្នុង Excel ទេ។ ប៉ុន្តែគ្មាននរណាម្នាក់និយាយថាយើងមិនអាចបង្កើតរបស់ផ្ទាល់ខ្លួនរបស់យើងបានទេ :)
តើកន្សោមធម្មតាគឺជាអ្វី?
កន្សោមធម្មតា (aka regex ឬ regexp ) គឺជាលំដាប់តួអក្សរដែលបានអ៊ិនកូដយ៉ាងពិសេស ដែលកំណត់លំនាំស្វែងរក។ ដោយប្រើលំនាំនោះ អ្នកអាចស្វែងរកបន្សំតួអក្សរដែលត្រូវគ្នានៅក្នុងខ្សែអក្សរ ឬធ្វើឱ្យការបញ្ចូលទិន្នន័យមានសុពលភាព។ ប្រសិនបើអ្នកស៊ាំនឹងការសម្គាល់តួអក្សរជំនួស អ្នកអាចគិតថា regexes ជាកំណែកម្រិតខ្ពស់នៃតួអក្សរជំនួស។
កន្សោមធម្មតាមានវាក្យសម្ព័ន្ធផ្ទាល់ខ្លួនដែលមានតួអក្សរពិសេស ប្រតិបត្តិករ និងសំណង់។ ឧទាហរណ៍ [0-5] ត្រូវគ្នានឹងខ្ទង់ណាមួយពី 0 ដល់ 5។
កន្សោមធម្មតាត្រូវបានប្រើជាភាសាសរសេរកម្មវិធីជាច្រើនរួមទាំង JavaScript និង VBA ផងដែរ។ ក្រោយមកទៀតមានវត្ថុ RegExp ពិសេសដែលយើងនឹងប្រើប្រាស់ដើម្បីបង្កើតមុខងារផ្ទាល់ខ្លួនរបស់យើង។
តើ Excel គាំទ្រ regex ទេ?
គួរឱ្យសោកស្ដាយ ដែលមិនមានមុខងារ Regex ដែលបង្កើតនៅក្នុង Excel ទេ។ ដើម្បីអាចប្រើកន្សោមធម្មតានៅក្នុងរូបមន្តរបស់អ្នក អ្នកនឹងត្រូវបង្កើតមុខងារកំណត់ដោយអ្នកប្រើប្រាស់ផ្ទាល់ខ្លួនរបស់អ្នក (VBAអាគុយម៉ង់៖
=IF(RegExpMatch(A5, $A$2), "Yes", "No")
សម្រាប់ឧទាហរណ៍រូបមន្តបន្ថែម សូមមើល៖
- របៀបផ្គូផ្គងខ្សែអក្សរដោយប្រើកន្សោមធម្មតា
- សុពលភាពទិន្នន័យ Excel ជាមួយ regexes
អនុគមន៍ Excel Regex Extract
មុខងារ RegExpExtract ស្វែងរកខ្សែអក្សររងដែលត្រូវគ្នានឹងកន្សោមធម្មតា ហើយស្រង់ការផ្គូផ្គងទាំងអស់ ឬ ការផ្គូផ្គងជាក់លាក់។
RegExpExtract(text, pattern, [instance_num], [match_case])Where:
- Text (required) - ខ្សែអក្សរអត្ថបទដែលត្រូវស្វែងរក in.
- Pattern (ទាមទារ) - កន្សោមធម្មតាដែលត្រូវផ្គូផ្គង។
- Instance_num (ស្រេចចិត្ត) - លេខសៀរៀលដែលចង្អុលបង្ហាញថាតើវត្ថុមួយណាទៅ ស្រង់ចេញ។ ប្រសិនបើលុបចោល ត្រឡប់ការផ្គូផ្គងដែលបានរកឃើញទាំងអស់ (លំនាំដើម)។
- Match_case (ជាជម្រើស) - កំណត់ថាតើត្រូវគ្នា (TRUE ឬលុបចោល) ឬមិនអើពើ (FALSE) ករណីអត្ថបទ។
អ្នកអាចទទួលបានកូដនៃមុខងារនៅទីនេះ។
ឧទាហរណ៍៖ របៀបស្រង់ខ្សែអក្សរដោយប្រើកន្សោមធម្មតា
ដោយលើកឧទាហរណ៍របស់យើងបន្តិចទៀត តោះស្រង់លេខវិក្កយបត្រ។ សម្រាប់បញ្ហានេះ យើងនឹងប្រើ regex ដ៏សាមញ្ញបំផុតដែលត្រូវនឹងលេខ 7 ខ្ទង់ណាមួយ៖
លំនាំ : \b\d{7}\b
Put លំនាំក្នុង A2 ហើយអ្នកនឹងអាចបំពេញការងារបានជាមួយនឹងរូបមន្តបង្រួម និងឆើតឆាយនេះ៖
=RegExpExtract(A5, $A$2)
ប្រសិនបើលំនាំត្រូវគ្នា រូបមន្តនឹងស្រង់លេខវិក្កយបត្រ ប្រសិនបើរកមិនឃើញការផ្គូផ្គង - គ្មានអ្វីត្រលប់មកវិញទេ។
សម្រាប់ឧទាហរណ៍បន្ថែម សូមមើល៖ របៀបស្រង់ខ្សែអក្សរក្នុង Excelដោយប្រើ regex។
មុខងារជំនួស Excel Regex
មុខងារ RegExpReplace ជំនួសតម្លៃដែលត្រូវគ្នានឹង regex ជាមួយអត្ថបទដែលអ្នកបញ្ជាក់។
RegExpReplace(អត្ថបទ លំនាំ ការជំនួស , [instance_num], [match_case])កន្លែងណា៖
- អត្ថបទ (ទាមទារ) - ខ្សែអក្សរដែលត្រូវស្វែងរក។
- Pattern (ទាមទារ) - កន្សោមធម្មតាដែលត្រូវផ្គូផ្គង។
- ការជំនួស (ទាមទារ) - អត្ថបទដើម្បីជំនួសខ្សែរងដែលត្រូវគ្នាជាមួយ។
- Instance_num (ស្រេចចិត្ត) - វត្ថុដែលត្រូវជំនួស។ លំនាំដើមគឺ "ការផ្គូផ្គងទាំងអស់">កូដនៃមុខងារមាននៅទីនេះ។
ឧទាហរណ៍៖ របៀបជំនួស ឬលុបខ្សែអក្សរដោយប្រើ 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")
ជាមួយ regex និងអត្ថបទជំនួសនៅក្នុងក្រឡាដាច់ដោយឡែក ( A2 និង B2) រូបមន្តដំណើរការបានល្អស្មើគ្នា៖
នៅក្នុង Excel "ការដកចេញ" គឺជាករណីជាក់លាក់មួយនៃ "ការជំនួស" ។ ដើម្បី លុប លេខប័ណ្ណឥណទាន គ្រាន់តែប្រើខ្សែអក្សរទទេ ("") សម្រាប់អាគុយម៉ង់ ជំនួស ៖
=RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")
<3
គន្លឹះ។ ដើម្បីទទួលបានបន្ទាត់ទទេនៅក្នុងលទ្ធផល អ្នកអាចប្រើមុខងារ RegExpReplace មួយផ្សេងទៀតដូចដែលបានបង្ហាញក្នុងឧទាហរណ៍នេះ៖ របៀបលុបបន្ទាត់ទទេដោយប្រើ regex។
សម្រាប់ព័ត៌មានបន្ថែម សូមមើល៖
- របៀបជំនួសខ្សែអក្សរក្នុង Excel ដោយប្រើ regex
- របៀបយកខ្សែអក្សរចេញដោយប្រើ regex
- របៀបដោះដកឃ្លាដោយប្រើ regexes
ឧបករណ៍ Regex ដើម្បីផ្គូផ្គង ស្រង់ចេញ ជំនួស និងលុបខ្សែអក្សររង
អ្នកប្រើប្រាស់ Ultimate Suite របស់យើងអាចទទួលបានថាមពលទាំងអស់នៃកន្សោមធម្មតាដោយមិនចាំបាច់បញ្ចូលកូដតែមួយជួរនៅក្នុងសៀវភៅការងាររបស់ពួកគេ។ កូដចាំបាច់ទាំងអស់ត្រូវបានសរសេរដោយអ្នកអភិវឌ្ឍន៍របស់យើង ហើយរួមបញ្ចូលគ្នាយ៉ាងរលូននៅក្នុង Excel របស់អ្នកអំឡុងពេលដំឡើង។
មិនដូចមុខងារ VBA ដែលបានពិភាក្សាខាងលើទេ មុខងាររបស់ Ultimate Suite គឺផ្អែកលើ .NET ដែលផ្តល់អត្ថប្រយោជន៍សំខាន់ពីរ៖
- អ្នកអាចប្រើកន្សោមធម្មតានៅក្នុងសៀវភៅការងារ .xlsx ធម្មតាដោយមិនចាំបាច់បន្ថែមកូដ VBA ណាមួយឡើយ ហើយត្រូវរក្សាទុកវាជាឯកសារដែលបើកដំណើរការម៉ាក្រូ។
- .NET Regex engine គាំទ្រមុខងារបុរាណពេញលេញកន្សោមធម្មតា ដែលអនុញ្ញាតឱ្យអ្នកបង្កើតលំនាំស្មុគ្រស្មាញជាងមុន។
របៀបប្រើ Regex ក្នុង Excel
ជាមួយនឹងការដំឡើង Ultimate Suite ការប្រើកន្សោមធម្មតានៅក្នុង Excel គឺសាមញ្ញដូចជំហានទាំងពីរនេះដែរ។ :
- នៅលើផ្ទាំង Ablebits Data ក្នុងក្រុម Text ចុច Regex Tools ។
- នៅលើបន្ទះ ឧបករណ៍ Regex សូមធ្វើដូចខាងក្រោម៖
- ជ្រើសរើសទិន្នន័យប្រភព។
- បញ្ចូលលំនាំ regex របស់អ្នក។
- ជ្រើសរើសជម្រើសដែលចង់បាន៖ ផ្គូផ្គង ស្រង់ចេញ យកចេញ ឬ ជំនួស ។
- ដើម្បីទទួលបានលទ្ធផលជា រូបមន្ត និងមិនមែនតម្លៃ សូមជ្រើសរើសប្រអប់ធីក បញ្ចូលជារូបមន្ត ។
- ចុចប៊ូតុងសកម្មភាព។
ឧទាហរណ៍ ដើម្បីលុបលេខកាតឥណទានចេញពីកោសិកា A2:A6 យើងកំណត់រចនាសម្ព័ន្ធការកំណត់ទាំងនេះ៖
ក្នុងមួយរំពេច មុខងារ AbblebitsRegex នឹងត្រូវបានបញ្ចូលក្នុងជួរឈរថ្មីនៅខាងស្តាំនៃដើមរបស់អ្នក ទិន្នន័យ។ ក្នុងករណីរបស់យើង រូបមន្តគឺ៖
=AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")
នៅពេលរូបមន្តនៅទីនោះ អ្នកអាចកែសម្រួល ចម្លង ឬផ្លាស់ទីវាដូចរូបមន្តដើមណាមួយ។
របៀបបញ្ចូលរូបមន្ត Regex ដោយផ្ទាល់នៅក្នុងក្រឡា
មុខងារ AblebitsRegex ក៏អាចត្រូវបានបញ្ចូលដោយផ្ទាល់នៅក្នុងក្រឡាដោយមិនប្រើចំណុចប្រទាក់របស់កម្មវិធីបន្ថែម។ នេះជារបៀប៖
- ចុចប៊ូតុង fx នៅលើរបាររូបមន្ត ឬ បញ្ចូលអនុគមន៍ នៅលើផ្ទាំង រូបមន្ត ។
- នៅក្នុងប្រអប់ បញ្ចូលមុខងារ សូមជ្រើសរើស AblebitsUDFs ប្រភេទ ជ្រើសរើសមុខងារចំណាប់អារម្មណ៍ ហើយចុចយល់ព្រម។
- កំណត់អាគុយម៉ង់របស់មុខងារដូចដែលអ្នកធ្វើធម្មតា ហើយចុចយល់ព្រម។ រួចរាល់!
សម្រាប់ព័ត៌មានបន្ថែម សូមមើលឧបករណ៍ Regex សម្រាប់ Excel។
នោះជារបៀបប្រើកន្សោមធម្មតា ដើម្បីផ្គូផ្គង ស្រង់ចេញ ជំនួស និងលុបអត្ថបទនៅក្នុងក្រឡា Excel។ ខ្ញុំសូមអរគុណចំពោះការអាន ហើយទន្ទឹងរង់ចាំជួបអ្នកនៅលើប្លក់របស់យើងនៅសប្តាហ៍ក្រោយ!
ការទាញយកដែលមាន
Excel Regex - ឧទាហរណ៍រូបមន្ត (.xlsm file)
Ultimate Suite - កំណែសាកល្បង (ឯកសារ .exe)
ឬ .NET ផ្អែកលើ) ឬដំឡើងឧបករណ៍ភាគីទីបីដែលគាំទ្រ regexes។សន្លឹកបន្លំ Excel Regex
ថាតើលំនាំ regex គឺសាមញ្ញបំផុត ឬស្មុគ្រស្មាញបំផុត វាត្រូវបានបង្កើតឡើងដោយប្រើវាក្យសម្ព័ន្ធទូទៅ។ ការបង្រៀននេះមិនមានគោលបំណងបង្រៀនអ្នកនូវកន្សោមធម្មតានោះទេ។ សម្រាប់បញ្ហានេះ មានធនធានជាច្រើននៅលើអ៊ីនធឺណិត ចាប់ពីការបង្រៀនឥតគិតថ្លៃសម្រាប់អ្នកចាប់ផ្តើមដំបូង រហូតដល់វគ្គសិក្សាពិសេសសម្រាប់អ្នកប្រើប្រាស់កម្រិតខ្ពស់។
ខាងក្រោមនេះ យើងផ្តល់នូវឯកសារយោងយ៉ាងរហ័សចំពោះគំរូ RegEx សំខាន់ៗ ដែលនឹងជួយអ្នកឱ្យយល់ច្បាស់អំពីមូលដ្ឋានគ្រឹះ។ វាក៏អាចដំណើរការជាសន្លឹកបន្លំរបស់អ្នកផងដែរ នៅពេលសិក្សាឧទាហរណ៍បន្ថែម។
ប្រសិនបើអ្នកពេញចិត្តនឹងកន្សោមធម្មតា អ្នកអាចលោតត្រង់ទៅមុខងារ RegExp។
តួអក្សរ
ទាំងនេះ គឺជាគំរូដែលប្រើញឹកញាប់បំផុតដើម្បីផ្គូផ្គងតួអក្សរជាក់លាក់។
លំនាំ ការពិពណ៌នា ឧទាហរណ៍ ផ្គូផ្គង . តួអក្សរជំនួស៖ ត្រូវគ្នានឹងតួអក្សរតែមួយ លើកលែងតែការបំបែកបន្ទាត់ .ot ចំនុច , hot , pot , @ot \d តួរលេខ៖ ខ្ទង់ណាមួយ ពី 0 ដល់ 9 \d ក្នុង a1b ត្រូវគ្នា 1 \D តួអក្សរណាមួយដែលមិនមែនជាខ្ទង់ \D ក្នុង a1b ត្រូវគ្នានឹង a និង b \s តួអក្សរដកឃ្លា៖ ដកឃ្លា ផ្ទាំង បន្ទាត់ថ្មី និងត្រឡប់ការបញ្ជូនបន្ត ។\s. នៅក្នុង 3 សេន , ផ្គូផ្គង 3 c \S ណាមួយតួអក្សរដែលមិនមានចន្លោះពណ៌ស \S+ ក្នុង 30 សេន ត្រូវគ្នានឹង 30 និង សេន \w តួអក្សរពាក្យ៖ អក្សរ ASCII ណាមួយ ខ្ទង់ ឬគូសក្រោម \w+ នៅក្នុង 5_cats*** , ផ្គូផ្គង 5_cats \W តួអក្សរណាមួយដែលមិនមែនជាតួអក្សរអក្សរក្រមលេខ ឬគូសគូស \W+ នៅក្នុង 5_cats*** ការប្រកួត *** \t ផ្ទាំង <14\n បន្ទាត់ថ្មី \n\d+ នៅក្នុងបន្ទាត់ពីរ ខ្សែអក្សរខាងក្រោម ត្រូវគ្នានឹងឆ្មា 10 5 ក្បាល
ឆ្កែ 10
\ គេចពីអត្ថន័យពិសេសនៃតួអក្សរ ដូច្នេះអ្នកអាច ស្វែងរកវា \. \w+\.
គេចចេញពីរយៈពេលមួយ ដូច្នេះអ្នកអាចស្វែងរកព្យញ្ជនៈ "." តួអក្សរនៅក្នុងខ្សែអក្សរ Mr. , Mrs. , Prof.
ថ្នាក់តួអក្សរ
ដោយប្រើលំនាំទាំងនេះ អ្នកអាចផ្គូផ្គងធាតុនៃសំណុំតួអក្សរផ្សេងៗគ្នា។
លំនាំ ការពិពណ៌នា ឧទាហរណ៍ ការផ្គូផ្គង [តួអក្សរ] ត្រូវគ្នានឹងតួអក្សរណាមួយនៅក្នុងតង្កៀប d[oi]g<15 dog និង dig [^characters] ផ្គូផ្គងតួអក្សរតែមួយដែលមិននៅក្នុងតង្កៀប d[^oi]g ផ្គូផ្គង dag, dug , d1g មិនត្រូវគ្នានឹង dog និង dig
[ពី–ទៅ] ផ្គូផ្គងតួអក្សរណាមួយក្នុងជួររវាងតង្កៀប [0-9] [a-z]
[A-Z]
ខ្ទង់ណាមួយពី 0 ដល់ 9 អក្សរតូចតែមួយ
អក្សរធំតែមួយ
Quantifiers
Quantifiers គឺជាកន្សោមពិសេសដែលបញ្ជាក់ចំនួនតួអក្សរដែលត្រូវគ្នា។ អ្នកកំណត់បរិមាណតែងតែអនុវត្តចំពោះតួអក្សរនៅពីមុខវា។
លំនាំ ការពិពណ៌នា ឧទាហរណ៍ ការផ្គូផ្គង * សូន្យ ឬច្រើនកើតឡើង 1a* 1, 1a , 1aa, 1aaa ជាដើម។ + ការកើតឡើងមួយ ឬច្រើន po+ នៅក្នុង pot ផ្គូផ្គង po In poor ផ្គូផ្គង poo
? សូន្យ ឬមួយកើតឡើង roa?d ផ្លូវ, ដំបង *? សូន្យ ឬការកើតឡើងកាន់តែច្រើន ប៉ុន្តែតិចជាងតាមដែលអាចធ្វើទៅបាន 1a*? ក្នុង 1a , 1aa និង 1aaa ត្រូវគ្នា 1a +? ការកើតឡើងមួយ ឬច្រើន ប៉ុន្តែតិចជាងតាមដែលអាចធ្វើទៅបាន po+? នៅក្នុង pot និង poor ត្រូវគ្នានឹង po ?? សូន្យ ឬមួយកើតឡើង ប៉ុន្តែតិចជាងតាមដែលអាចធ្វើទៅបាន roa?? នៅក្នុង ផ្លូវ និង rod ត្រូវគ្នានឹង ro {n} ត្រូវគ្នានឹងលំនាំមុន n ដង \d{3} ពិតប្រាកដ 3 ខ្ទង់ { ន ,} ត្រូវគ្នានឹងលំនាំមុន n ឬច្រើនដង \d{3,} 3 ឬច្រើនខ្ទង់ {n,m} ត្រូវគ្នានឹងលំនាំមុនរវាង n និង m ដង \d{3,5} ពី 3 ទៅ 5 ខ្ទង់ ការដាក់ជាក្រុម
ការស្ថាបនាជាក្រុមត្រូវបានប្រើដើម្បីចាប់យកខ្សែអក្សររងពីខ្សែអក្សរប្រភព ដូច្នេះអ្នកអាចអនុវត្តប្រតិបត្តិការមួយចំនួនជាមួយវាបាន។
វាក្យសម្ព័ន្ធ ការពិពណ៌នា ឧទាហរណ៍ ការផ្គូផ្គង (លំនាំ) ការចាប់យកក្រុម៖ ចាប់យកខ្សែអក្សររងដែលត្រូវគ្នា ហើយកំណត់វាជាលេខធម្មតា (\d+) ក្នុង 5 ឆ្មា និង 10 ឆ្កែ ចាប់ 5 (ក្រុម 1) និង 10 (ក្រុម 2) (?:pattern) ក្រុមមិនចាប់យក៖ ផ្គូផ្គងក្រុមប៉ុន្តែមិនចាប់យកវា (\d+)(?: dogs) នៅក្នុង ឆ្មា 5 ក្បាល និងឆ្កែ 10 ក្បាល ចាប់យក 10 \1 ខ្លឹមសារក្រុម 1 (\d+)\+(\d+)=\2\+\1 ផ្គូផ្គង 5+10=10+5 និងចាប់យក 5 និង 10 ដែលស្ថិតនៅក្នុងការចាប់យកក្រុម \2 ខ្លឹមសារនៃក្រុមទី 2 យុថ្កា
យុថ្កាបញ្ជាក់ទីតាំងនៅក្នុងខ្សែអក្សរបញ្ចូលកន្លែងដែលត្រូវរកមើល ការប្រកួតមួយ។
យុថ្កា ការពិពណ៌នា ឧទាហរណ៍ ការប្រកួត ^ ការចាប់ផ្តើមនៃខ្សែ ចំណាំ៖ [^inside brackets] មានន័យថា "មិន"
^\d+ ចំនួនខ្ទង់ណាមួយនៅ ការចាប់ផ្តើមនៃខ្សែអក្សរ។ នៅក្នុង 5 ឆ្មា និង 10 ឆ្កែ ត្រូវគ្នានឹង 5
$ ចុងបញ្ចប់នៃខ្សែអក្សរ \d+$ ចំនួនខ្ទង់ណាមួយនៅចុងបញ្ចប់នៃខ្សែអក្សរ។ ក្នុង 10Y
(?<=) មើលទៅក្រោយវិជ្ជមាន (?<=Y)X ផ្គូផ្គងកន្សោម X នៅពេលដែលវាត្រូវបាននាំមុខដោយ Y (ឧទាហរណ៍ប្រសិនបើមាន Y នៅពីក្រោយ X) (? អវិជ្ជមានមើលទៅក្រោយ (? ផ្គូផ្គងកន្សោម X នៅពេលដែលវាមិនត្រូវបាននាំមុខដោយ Y ឥឡូវនេះអ្នកដឹងពីចំណុចសំខាន់ៗ តោះបន្តទៅផ្នែកដែលគួរឱ្យចាប់អារម្មណ៍បំផុត - ដោយប្រើ regexes នៅលើទិន្នន័យពិតដើម្បីញែកខ្សែអក្សរ និងស្វែងរកព័ត៌មានដែលត្រូវការ។ ប្រសិនបើអ្នកត្រូវការព័ត៌មានលម្អិតបន្ថែមអំពីវាក្យសម្ព័ន្ធ ការណែនាំរបស់ Microsoft អំពីភាសាការបញ្ចេញមតិធម្មតាអាចបង្ហាញថាមានប្រយោជន៍។
មុខងារ RegEx ផ្ទាល់ខ្លួនសម្រាប់ Excel
ដូចដែលបានបញ្ជាក់រួចមកហើយ Microsoft Excel មិនមានមុខងារ RegEx ដែលភ្ជាប់មកជាមួយទេ។ ដើម្បីបើកកន្សោមធម្មតា យើងបានបង្កើតមុខងារ VBA ផ្ទាល់ខ្លួនចំនួនបី (ហៅថាមុខងារកំណត់ដោយអ្នកប្រើប្រាស់)។ អ្នកអាចចម្លងកូដពីទំព័រដែលភ្ជាប់ខាងក្រោម ឬពីគំរូរបស់យើង សៀវភៅការងារ ហើយបន្ទាប់មកបិទភ្ជាប់ក្នុងឯកសារ Excel ផ្ទាល់ខ្លួនរបស់អ្នក។
របៀបដែលមុខងារ VBA RegExp ដំណើរការ
ផ្នែកនេះពន្យល់អំពីមេកានិចខាងក្នុង ហើយអាចជា int ជម្រាបសួរអ្នកដែលចង់ដឹងច្បាស់ថាមានអ្វីកើតឡើងនៅផ្នែកខាងក្រោយ។
ដើម្បីចាប់ផ្តើមប្រើកន្សោមធម្មតានៅក្នុង VBA អ្នកត្រូវដំណើរការបណ្ណាល័យយោងវត្ថុ RegEx ឬប្រើមុខងារ CreateObject ។ ដើម្បីសង្គ្រោះអ្នកពីបញ្ហានៃការកំណត់ឯកសារយោងនៅក្នុងកម្មវិធីនិពន្ធ VBA យើងបានជ្រើសរើសវិធីសាស្រ្តចុងក្រោយ។
វត្ថុ RegExp មានលក្ខណៈសម្បត្តិ 4៖
- លំនាំ - គឺ លំនាំ ដើម្បីផ្គូផ្គងនៅក្នុងខ្សែអក្សរបញ្ចូល។
- សកល - គ្រប់គ្រងថាតើត្រូវស្វែងរកការផ្គូផ្គងទាំងអស់នៅក្នុងខ្សែអក្សរបញ្ចូល ឬគ្រាន់តែជាខ្សែទីមួយ។ នៅក្នុងមុខងាររបស់យើង វាត្រូវបានកំណត់ទៅ True ដើម្បីទទួលបាន ការផ្គូផ្គងទាំងអស់ ។
- MultiLine - កំណត់ថាតើត្រូវផ្គូផ្គងលំនាំឆ្លងកាត់ការបំបែកបន្ទាត់ក្នុងខ្សែច្រើនបន្ទាត់ ឬសម្រាប់តែ នៅក្នុងជួរទីមួយ។ នៅក្នុងកូដរបស់យើង វាត្រូវបានកំណត់ទៅ True ដើម្បីស្វែងរក ក្នុងគ្រប់បន្ទាត់ ។
- IgnoreCase - កំណត់ថាតើកន្សោមធម្មតាគឺប្រកាន់អក្សរតូចធំ (លំនាំដើម) ឬ case- អសកម្ម (កំណត់ទៅពិត) ។ ក្នុងករណីរបស់យើង វាអាស្រ័យលើរបៀបដែលអ្នកកំណត់ប៉ារ៉ាម៉ែត្រ match_case ស្រេចចិត្ត។ តាមលំនាំដើម មុខងារទាំងអស់គឺ case-sensitive ។
ដែនកំណត់ VBA RegExp
Excel VBA អនុវត្តលំនាំ regex សំខាន់ៗ ប៉ុន្តែវាខ្វះមុខងារកម្រិតខ្ពស់ជាច្រើន មាននៅក្នុង .NET, Perl, Java និងម៉ាស៊ីន regex ផ្សេងទៀត។ ឧទាហរណ៍ VBA RegExp មិនគាំទ្រការកែប្រែក្នុងបន្ទាត់ដូចជា (?i) សម្រាប់ការផ្គូផ្គង case-insensitive ឬ (?m) សម្រាប់ multi-line mode, lookbehinds, POSIX classes ដើម្បីដាក់ឈ្មោះមួយចំនួន។
Excel Regex មុខងារផ្គូផ្គង
មុខងារ RegExpMatch ស្វែងរកខ្សែអក្សរបញ្ចូលសម្រាប់អត្ថបទដែលត្រូវនឹងកន្សោមធម្មតា ហើយត្រឡប់ TRUE ប្រសិនបើការផ្គូផ្គងត្រូវបានរកឃើញ នោះ FALSE បើមិនដូច្នេះទេ
RegExpMatch(អត្ថបទ លំនាំ [ match_case])Where:
- Text (required) - ខ្សែអក្សរមួយ ឬច្រើនដើម្បីស្វែងរក។
- Pattern ( ទាមទារ) - ទៀងទាត់កន្សោមដែលត្រូវនឹង។
- Match_case (ជាជម្រើស) - ប្រភេទផ្គូផ្គង។ ពិត ឬលុបចោល - ប្រកាន់អក្សរតូចធំ; FALSE - case-insensitive
កូដរបស់មុខងារគឺនៅទីនេះ។
ឧទាហរណ៍៖ របៀបប្រើកន្សោមធម្មតាដើម្បីផ្គូផ្គងខ្សែអក្សរ
នៅក្នុងសំណុំទិន្នន័យខាងក្រោម ឧបមាថាអ្នកចង់បាន ដើម្បីកំណត់អត្តសញ្ញាណធាតុដែលមានលេខកូដ SKU ។
ដោយហេតុថា SKU នីមួយៗចាប់ផ្តើមដោយអក្សរធំ 2 អមដោយសហសញ្ញា អមដោយ 4 ខ្ទង់ អ្នកអាចផ្គូផ្គងពួកវាដោយប្រើកន្សោមខាងក្រោម។
Pattern : \b[A-Z]{2}-\d{4}\b
Where [A-Z]{2} មានន័យថាអក្សរធំទាំង 2 ពី A ដល់ Z និង \d{4 } មានន័យថាលេខ 4 ខ្ទង់ណាមួយពី 0 ដល់ 9 ។ ព្រំដែនពាក្យ \b បង្ហាញថា SKU គឺជាពាក្យដាច់ដោយឡែក និងមិនមែនជាផ្នែកនៃខ្សែអក្សរធំជាងនេះ។
ជាមួយនឹងលំនាំដែលបានបង្កើតឡើង សូមចាប់ផ្តើមវាយរូបមន្តដូចដែលអ្នកធ្វើជាធម្មតា។ ហើយឈ្មោះរបស់មុខងារនឹងបង្ហាញក្នុងបញ្ជីដែលស្នើដោយកម្មវិធីបំពេញស្វ័យប្រវត្តិរបស់ Excel៖
សូមមើលផងដែរ: វិធីលុបជួរឈរទទេក្នុង Excelសន្មត់ថាខ្សែអក្សរដើមស្ថិតនៅក្នុង A5 រូបមន្តមានដូចខាងក្រោម៖
=RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")
ដើម្បីភាពងាយស្រួល អ្នកអាចបញ្ចូលកន្សោមធម្មតានៅក្នុងក្រឡាដាច់ដោយឡែកមួយ ហើយប្រើសេចក្តីយោងដាច់ខាត ($A$2) សម្រាប់អាគុយម៉ង់ លំនាំ t. វាធានាថាអាសយដ្ឋានក្រឡានឹងនៅតែមិនផ្លាស់ប្តូរ នៅពេលអ្នកចម្លងរូបមន្តទៅក្រឡាផ្សេងទៀត៖
=RegExpMatch(A5, $A$2)
ដើម្បីបង្ហាញស្លាកអត្ថបទរបស់អ្នកជំនួសឱ្យ TRUE និង FALSE សូមដាក់ RegExpMatch នៅក្នុងមុខងារ IF ហើយ បញ្ជាក់អត្ថបទដែលចង់បាននៅក្នុង value_if_true និង value_if_false បូក 5 ផ្តល់ឱ្យ 15 , ផ្គូផ្គង 15
\b ព្រំដែនពាក្យ \bjoy\b ផ្គូផ្គង joy ជាពាក្យដាច់ដោយឡែក ប៉ុន្តែមិននៅក្នុង រីករាយ ។ \B មិនមែនជាពាក្យកំណត់ \Bjoy\B ផ្គូផ្គង joy ក្នុង រីករាយ ប៉ុន្តែមិនមែនជាពាក្យដាច់ដោយឡែកទេ។ Alternation (OR) construct
Alternation operand បើក OR logic ដូច្នេះអ្នកអាចផ្គូផ្គងធាតុនេះឬនោះបាន។
Construct ការពិពណ៌នា ឧទាហរណ៍ ការផ្គូផ្គង