រំលងទៅមាតិកា

ឧបករណ៍សាកល្បង Regex

សរសេរ regular expression ហើយឃើញគ្រប់លទ្ធផលដែលត្រូវគ្នា highlight ភ្លាមៗពេលអ្នកវាយបញ្ចូល។

//
Matches highlighted
Cheat sheet and common patterns
TokenMeaning
\dAny digit 0–9
\wLetter, digit or underscore
\sWhitespace (space, tab, newline)
.Any character except newline
^ / $Start / end of string (or line with m)
\bWord boundary
[abc] / [^abc]One of / none of these characters
a* / a+ / a?0 or more / 1 or more / optional
a{2,4}Between 2 and 4 times
(…) / (?:…)Capturing / non-capturing group
(?<name>…)Named group
a|ba or b
(?=…) / (?!…)Followed by / not followed by
$1, $<name>Group in the replacement

Click a pattern to load it:

ឧបករណ៍សាកល្បង regex នេះដំណើរការ pattern របស់អ្នកធៀបនឹងអត្ថបទគំរូ ហើយ highlight គ្រប់លទ្ធផលដែលត្រូវគ្នាភ្លាមៗ។ តារាងមួយនឹងបង្ហាញបញ្ជីលទ្ធផលនីមួយៗរួមជាមួយទីតាំងរបស់វា capture groups តាមលេខ និងក្រុមមានឈ្មោះ ព្រមទាំងប្រអប់ជំនួស (replace) បង្ហាញលទ្ធផលនៃ String.replace ជាមួយ references ដូចជា $1 និង $<name> ដើម្បីឱ្យអ្នកអាចកែសម្រួល find-and-replace ឱ្យបានល្អឥតខ្ចោះមុនពេលយកទៅប្រើក្នុងកូដ។

វាប្រើ JavaScript (ECMAScript) regex engine ដែលមានស្រាប់ក្នុងកម្មវិធីរុករករបស់អ្នក ដែលជាម៉ាស៊ីនតែមួយប្រើដោយ Node.js, TypeScript និងកូដ front-end ភាគច្រើន។ Flags g, i, m, s, u និង y អាចបើក/បិទបានតាមប្រអប់ធីក។ Pattern និងអត្ថបទសាកល្បងរបស់អ្នកស្ថិតនៅលើកុំព្យូទ័ររបស់អ្នកជានិច្ច ដែលធានាសុវត្ថិភាពសម្រាប់បន្ទាត់ log និងទិន្នន័យជាក់ស្តែង។

របៀបប្រើឧបករណ៍ សាកល្បង Regex

  1. វាយ pattern របស់អ្នកនៅចន្លោះសញ្ញា slash ដោយមិនបាច់ដាក់ / / ឡើយ។
  2. ធីកលើ flags ដែលអ្នកត្រូវការ ឧទាហរណ៍ g ដើម្បីស្វែងរកលទ្ធផលត្រូវគ្នាទាំងអស់ ឬ i ដើម្បីមិនប្រកាន់អក្សរតូចធំ។
  3. បិទភ្ជាប់អត្ថបទដែលត្រូវសាកល្បង។ លទ្ធផលដែលត្រូវគ្នានឹងត្រូវ highlight និងរាប់ចំនួនផ្ទាល់ភ្លាមៗ។
  4. ពិនិត្យតារាងដើម្បីមើលតម្លៃ capture group។
  5. អ្នកអាចបញ្ចូលពាក្យជំនួសជាជម្រើស ដើម្បីមើលអត្ថបទដែលបានជំនួសជាមុន រួចចម្លងវាទុក។

ហេតុអ្វីប្រើ សាកល្បង Regex របស់ ToolOrca

  • Highlight គ្រប់លទ្ធផលដែលត្រូវគ្នាក្នុងពេលជាក់ស្ដែង
  • Capture groups តាមលេខ និងតាមឈ្មោះ
  • មើលលទ្ធផល replace ជាមុនជាមួយ $1 និង $
  • JavaScript flags ទាំងអស់៖ g i m s u y
  • Cheat sheet និង pattern គំរូស្រាប់ៗ
  • សារបញ្ជាក់កំហុសច្បាស់លាស់សម្រាប់ pattern មិនត្រឹមត្រូវ

មូលដ្ឋានគ្រឹះ Regex ក្នុងរយៈពេលមួយនាទី

Regular expression កំណត់លំនាំអត្ថបទ (pattern)។ តួអក្សរធម្មតាគឺផ្គូផ្គងនឹងតួវាផ្ទាល់ ចំណែក tokens ពិសេសផ្គូផ្គងនឹងក្រុមតួអក្សរ៖ \d ត្រូវនឹងលេខ, \w តួអក្សរពាក្យ, \s ចន្លោះទំនេរ (whitespace) និង . តួអក្សរណាមួយ។ Quantifiers បញ្ជាក់ពីចំនួន៖ + មួយ ឬច្រើន, * សូន្យ ឬច្រើន, ? មាន ឬគ្មាន និង {2,5} ចន្លោះកំណត់។

វង់ក្រចកបង្កើត capture groups ដែលអ្នកអាចយកមកប្រើឡើងវិញក្នុងការពាក្យជំនួស ហើយ ^ និង $ ជាយុថ្កាកំណត់ការផ្គូផ្គងនៅដើម និងចុងបញ្ចប់នៃអត្ថបទ ឬនៃបន្ទាត់នីមួយៗពេលប្រើ m flag។

ការជៀសវាង pattern ដែលដំណើរការយឺត

Quantifiers ត្រួតគ្នាដូចជា (a+)+ អាចបណ្តាលឱ្យកើតមាន “catastrophic backtracking” ដែលធ្វើឱ្យការស្វែងរកមិនត្រូវគ្នាចំណាយពេលយូរខ្លាំង។ គួរជ្រើសរើស character classes ជាក់លាក់ ([^"]* ជំនួសឱ្យ .*) និងប្រើ anchors។ ប្រសិនបើឧបករណ៍ដំណើរការយឺតលើ pattern ណាមួយ នោះវាក៏នឹងយឺតលើ production ដូចគ្នាដែរ។

សំណួរដែលសួរញឹកញាប់

តើឧបករណ៍សាកល្បងនេះប្រើ regex ប្រភេទណា?

ប្រើ JavaScript (ECMAScript) ដែលដំណើរការដោយកម្មវិធីរុករករបស់អ្នក។ Syntax ភាគច្រើនដូចគ្នាទៅនឹង PCRE, Python និង Java ប៉ុន្តែមុខងារមួយចំនួនដូចជា possessive quantifiers ឬ conditionals មិនមាននៅក្នុង JavaScript ទេ។

ហេតុអ្វីបានជា regex របស់ខ្ញុំរកឃើញតែលទ្ធផលដំបូងគេ?

បើគ្មាន flag g (global) ទេ JavaScript នឹងឈប់ស្វែងរកបន្ទាប់ពីរកឃើញលទ្ធផលដំបូង។ សូមធីកប្រអប់ g ដើម្បីស្វែងរកលទ្ធផលទាំងអស់។

តើខ្ញុំអាចផ្គូផ្គងសញ្ញាចុច ឬវង់ក្រចកទទេដោយរបៀបណា?

ប្រើ backslash នៅពីមុខ៖ \., \(, \[។ នៅខាងក្នុង character class តួអក្សរភាគច្រើនត្រូវបានចាត់ទុកជាតួអក្សរធម្មតា ដូច្នេះ [.] ក៏ផ្គូផ្គងនឹងសញ្ញាចុចដែរ។

តើ flag s ដំណើរការដូចម្តេច?

flag s (dotAll) អនុញ្ញាតឱ្យ . អាចផ្គូផ្គងនឹងការចុះបន្ទាត់បានផងដែរ។ បើគ្មានវាទេ . នឹងឈប់ត្រឹមចុងបន្ទាត់នីមួយៗ។

តើមាន regex សម្រាប់ផ្ទៀងផ្ទាត់អាសយដ្ឋានអ៊ីមែលដែរឬទេ?

Pattern សាមញ្ញដូចជា pattern ដែលមានស្រាប់ក្នុង preset អាចចាប់កំហុសវាយខុសបាន ប៉ុន្តែគ្មាន regex ណាអាចអនុវត្តតាមស្តង់ដារអ៊ីមែលបានទាំងស្រុងនោះទេ។ វិធីផ្ទៀងផ្ទាត់ដែលទុកចិត្តបានតែមួយគត់ គឺការផ្ញើអ៊ីមែលបញ្ជាក់។