உலாவியில் regex எவ்வாறு வேலை செய்கிறது?
ஒவ்வொரு JavaScript runtime உம் நேட்டிவ் ரெகுலர் எக்ஸ்பிரஷன் இயந்திரத்தை கொண்டு வருகிறது — new RegExp(pattern, flags) உங்கள் pattern ஐ compile செய்கிறது, பின்னர் String.prototype.match, String.prototype.replace மற்றும் RegExp.prototype.exec போன்ற முறைகள் எந்த உள்ளீட்டு சரத்திற்கும் அதை இயக்குகின்றன. இந்த டெஸ்டர் அந்த இயந்திரத்தை UI இல் மடிக்கிறது, இதனால் உங்கள் உலாவியை விட்டு வெளியேறாமல் pattern களை தொகுக்கலாம், இயக்கலாம் மற்றும் ஆய்வு செய்யலாம். நீங்கள் தட்டச்சு செய்வது — pattern, flags, சோதனை சரம் அல்லது மாற்றீடு — நெட்வொர்க் வழியாக அனுப்பப்படுவதில்லை.
Regex டெஸ்டர் எவ்வாறு வேலை செய்கிறது?
பைப்லைன் சில குறுகிய படிகள், அனைத்தும் ஒவ்வொரு keypress இலும் client-side இல் இயங்குகின்றன (தட்டச்சு சரளமாக இருக்க 150 ms க்கு debounce செய்யப்படுகிறது):
- உங்கள் pattern body மேலே உள்ள input இலிருந்து படிக்கப்படுகிறது (முன்னணி அல்லது பின்தொடர்
/delimiter கள் இல்லை — அவை அலங்காரமானவை). தேர்ந்தெடுக்கப்பட்ட flag pillsgiஅல்லதுgimsuyபோன்ற flags சரமாக இணைக்கப்படுகின்றன. new RegExp(patternBody, flags)pattern ஐ compile செய்கிறது. இயந்திரம் ஒருSyntaxErrorஎறிந்தால் (எ.கா. பொருந்தாத அடைப்புக்குறி அல்லது தவறான escape), சோதனை சரத்திற்கு மேலே செய்தி காட்டப்படும் மற்றும் match பட்டியல் அழிக்கப்படும். compile பிழை V8 / SpiderMonkey / JavaScriptCore இலிருந்து உண்மையானerr.messageஆகும், எனவே DevTools இல் நீங்கள் பார்ப்பதுடன் பொருந்துகிறது.- match பட்டியலுக்கு, டெஸ்டர் எப்போதும் ஒரு synthetic global flag உடன் enumerate செய்கிறது —
gஐ off செய்தாலும், பட்டியல் இன்னும் எல்லா match களையும் காட்டுகிறது. நிலையான zero-width-match காவலர் (if (m.index === rx.lastIndex) rx.lastIndex++) காலியான சரத்தை பொருத்தும் pattern களில் loop சுழலாமல் வைக்கிறது. Replace பயன்முறை உங்கள் உண்மையான flag set ஐ மதிக்கிறது, எனவே$&String.prototype.replaceபோலவே நடந்துகொள்கிறது. - ஒவ்வொரு iteration க்கும் இடையில் டெஸ்டர்
performance.now() - startசோதித்து 50 ms கடந்தவுடன் நிறுத்துகிறது. இதுaகளின் நீண்ட ஓட்டத்திற்கு எதிராக(a+)+$போன்ற catastrophic backtracking pattern களிலிருந்து காக்கிறது — இல்லையெனில் தாவல் முடங்கும். காவலர் best-effort: pathological single-match pattern ஒருexeccall க்குள் நேரத்தை நுகரலாம். அது நடந்தால், தாவலை புதுப்பித்து non-greedy quantifier அல்லது atomic-style possessive (எ.கா.[^x]*x) உடன் pattern ஐ மீண்டும் எழுதுங்கள். - சோதனை சரம் ஒவ்வொரு match இன் வரம்பில் segments ஆக பிரிக்கப்பட்டு பொருந்தும் segments
<mark class="rx-match rx-cap-N">elements இல் சுற்றப்படுகின்றன,Nஆனது ஆறு palette வண்ணங்களில் சுழல்கிறது, இதனால் அடுத்தடுத்த match கள் ஒரு பார்வையில் வேறுபடுத்தி தெரிகின்றன. ஒவ்வொரு match இன் numbered groups (m[1],m[2], …) மற்றும் named groups (m.groups) லேபிள் வரிசைகளாக கீழே காட்டப்படுகின்றன;dflag அமைக்கப்பட்டிருந்தால், group-க்கு-group[start, end]குறியீடுகளும் காட்டப்படுகின்றன.
இந்த regex டெஸ்டரை ஏன் பயன்படுத்தவேண்டும்?
- தனியுரிமை: ஒவ்வொரு pattern, சோதனை சரம் மற்றும் மாற்றீடும் உங்கள் உலாவியில் built-in JavaScript RegExp இயந்திரத்தைப் பயன்படுத்தி இயங்குகிறது. எதுவும் தாவலை விட்டு வெளியேறுவதில்லை — உள்ளீடு ஒரு வாடிக்கையாளர் log, leaked credential pattern அல்லது நீங்கள் hosted SaaS regex playground இல் ஒட்டாத வேறு எதுவாகவும் இருக்கும்போது முக்கியம்.
- நேர்மையான சுவை: டெஸ்டர் Node.js, Chrome, Safari, Firefox மற்றும் ஒவ்வொரு browser-based form validator இயக்கும் சரியான regex இயந்திரத்தை காட்டுகிறது. நுட்பமான வேறுபாடுகளை மறைக்க Perl-flavor மொழிபெயர்ப்பு அடுக்கு இல்லை — இங்கே வேலை செய்வது உங்கள் கோடிலும் வேலை செய்கிறது.
- Capture மற்றும் named-group debugging: ஒவ்வொரு numbered group (
$1,$2, …) மற்றும் named group ($<year>) ஒவ்வொரு match க்கும் காட்டப்படுகிறது, எனவே யூகிக்காமல் ஒரு parser உருவாக்கி slots படிக்கலாம். Replace பயன்முறை groups ஐ சுதந்திரமாக கலக்க அனுமதிக்கிறது —$2-$1முதல் இரண்டு slots ஐ மாற்றுகிறது,$<name>ஒரு named slot ஐ செருகுகிறது, மற்றும்$&முழு match ஐ எதிரொலிக்கிறது. - Catastrophic-backtracking காவலர்: enumeration இல் 50 ms ceiling ஆனது தாவலை freeze செய்வதற்கு முன்பு
(a+)+$போன்ற pathological pattern களை நிறுத்துகிறது. நீங்கள் ஒரு hung browser க்கு பதிலாக விளக்கமான பிழையைப் பார்க்கிறீர்கள், மற்றும் பக்கம் உடனடியாக மீட்டெடுக்கப்படுகிறது.
Regex டெஸ்டரின் பொதுவான பயன்பாடுகள் என்ன?
ரெகுலர் எக்ஸ்பிரஷன்கள் வலை மேம்பாடு, பாதுகாப்பு மற்றும் தரவு வேலை முழுவதும் தோன்றுகின்றன — இந்த டெஸ்டர் மிகவும் பொதுவான use cases ஐ இலக்காக்குகிறது:
- படிவ சரிபார்ப்பு: மின்னஞ்சல், தொலைபேசி அல்லது அஞ்சல் குறியீடு pattern ஐ உருவாக்கவும், சோதனை சரத்தில் மாதிரி உள்ளீடுகளை ஒட்டவும், மற்றும் production கோடுக்கு pattern அனுப்பும் முன்பு ஒவ்வொரு நேர்மறை case பொருந்துகிறதா மற்றும் ஒவ்வொரு எதிர்மறை case பொருந்தாதா என்று உறுதிசெய்யவும்.
- Log scraping: NGINX, application அல்லது audit-log வெளியீட்டின் ஒரு பகுதியை ஒட்டவும், நீங்கள் கவலைப்படும் பகுதிகளுக்கு named groups உடன் pattern எழுதவும் (
(?<ip>…) (?<path>…)), மற்றும் உங்கள் parser சரியானது என்று உறுதிசெய்ய ஒவ்வொரு match க்கும் captured slots படிக்கவும். - Refactor search-and-replace: ஒரு snippet முழுவதும் identifiers மீண்டும் எழுதுவதற்கு Replace பயன்முறையைப் பயன்படுத்தவும் —
(\w+)\.set(\w+)\(→$1.$2 =getter calls ஐ property assignments ஆக மாற்றுகிறது, மற்றும் நேரடி preview ஐ codemod க்கு commit செய்வதற்கு முன்பு முடிவு காட்டுகிறது.
Regex எடுத்துக்காட்டு எப்படி இருக்கும்?
g flag உடன் (\d{4})-(\d{2})-(\d{2}) pattern எடுத்துக்கொள்ளுங்கள், சோதனை சரம் release 2025-11-15, prerelease 2026-05-25 க்கு எதிராக இயக்கவும். இயந்திரம் இரண்டு matches கண்டறிகிறது. முதல் match 2025-11-15, group 1 = 2025, group 2 = 11, group 3 = 15. இரண்டாம் match 2026-05-25, அதே group வடிவத்துடன். Replace பயன்முறையில், மாற்றீடு template $3/$2/$1 இரண்டு தேதிகளையும் 15/11/2025 மற்றும் 25/05/2026 ஆக மீண்டும் எழுதுகிறது — ஒரு script க்கு pattern செருகுவதற்கு முன்பு காட்சியாக சரிபார்க்கக்கூடிய ஒரு-pattern ISO-to-DMY மாற்றம்.
எந்த regex வேலைக்கும் — pattern கட்டுவது, debugging செய்வது அல்லது மீண்டும் எழுதுவது — விரைவான பாதையாக இந்த டெஸ்டரைப் பயன்படுத்துங்கள். எல்லாம் உள்ளூரில் இயங்குகிறது; எதுவும் பதிவு செய்யப்படவில்லை; regex இயந்திரம் உங்கள் உலாவி கொண்டுவருவது, எனவே production கோடு runtime இல் பார்ப்பதை நடத்துகிறது.