പതിവ് എക്സ്പ്രഷനുകളിൽ ചീറ്റ് ഷീറ്റ്. ഉദാഹരണം: വലിയ അക്ഷരങ്ങൾ നീക്കം ചെയ്യുക. ജാവാസ്ക്രിപ്റ്റിൽ റെഗുലർ എക്സ്പ്രഷനുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു

Regex അല്ലെങ്കിൽ റെഗുലർ എക്സ്പ്രഷനുകൾ തുടക്കക്കാർക്ക് ഭയപ്പെടുത്തുന്നതാണ്, എന്നാൽ ഏതൊരു പ്രോഗ്രാമർക്കും അത്യാവശ്യമാണ്. ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് 5 ലളിതമായ ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് റെഗുലർ എക്സ്പ്രഷനുകൾ മനസ്സിലാക്കാം.

നിങ്ങൾക്ക് ഒരു പ്രശ്‌നമുണ്ടെങ്കിൽ, അത് സാധാരണ പദപ്രയോഗങ്ങളിലൂടെ പരിഹരിക്കാൻ പോകുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഇപ്പോൾ രണ്ട് പ്രശ്‌നങ്ങളുണ്ട്. എന്നൊരു ചൊല്ലുണ്ട്. കോഡിൽ കാണപ്പെടുന്ന പതിവ് പദപ്രയോഗങ്ങൾ ചിലപ്പോൾ പരിചിതമല്ലാത്ത ആളുകളിൽ ഭയവും വെറുപ്പും ഉണ്ടാക്കുന്നു.

എന്നാൽ വാസ്തവത്തിൽ, ഏതൊരു റീജക്സും ഒരു വരിയിൽ മുഴുവൻ ഫംഗ്ഷന്റെയും പ്രശ്നം പരിഹരിക്കാൻ കഴിയുന്ന ഒരു ടെംപ്ലേറ്റ് എക്സ്പ്രഷൻ മാത്രമാണ്. എന്നിരുന്നാലും, ഒരു സാധാരണ പദപ്രയോഗം നിർമ്മിക്കുന്നതിന്, ഒരു തുടക്കക്കാരന് ആശയക്കുഴപ്പത്തിലാകാനും തെറ്റുകൾ വരുത്താനും കഴിയുന്ന ഒരു കൂട്ടം കർശനമായ നിയമങ്ങൾ നിങ്ങൾ കണക്കിലെടുക്കേണ്ടതുണ്ട്.

പൊരുത്തപ്പെടുന്ന കഥാപാത്രങ്ങൾ

ഏറ്റവും അടിസ്ഥാനപരമായ പതിവ് പദപ്രയോഗങ്ങൾ ഒറ്റ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നവയാണ്. അവരുടെ നിയമങ്ങൾ ഇതാ:

1. ഒരു കാലഘട്ടം (.) ഏതെങ്കിലും പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്ട പോയിന്റിനായി തിരയണമെങ്കിൽ, "\" പ്രതീകം (\.) ഉപയോഗിച്ച് നിങ്ങൾ അതിൽ നിന്ന് രക്ഷപ്പെടണം.

2. മുമ്പത്തെ പ്രതീകം ഓപ്ഷണൽ ആണെന്ന് ഒരു ചോദ്യചിഹ്നം (?) സൂചിപ്പിക്കുന്നു. ഒരു സ്‌ട്രിംഗിൽ തന്നെ ചോദ്യചിഹ്നം തിരയുന്നതിന്, അത് "\" (\?) ഉപയോഗിച്ച് ഒഴിവാക്കണം.

var text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit lest. Donec convallis dignissim ligula, et rutrum est elat vistibulum eu."; // "elit" ഉം "elat" ഉം ചെയ്യും. ഡോട്ട് എന്നതിന്റെ അർത്ഥം ആരെങ്കിലും ചെയ്യുംചിഹ്നം. var regex = /el.t/g; console.log(text.match(regex)); // "est" ഉം "lest" ഉം ഒരുപോലെ നന്നായി പ്രവർത്തിക്കും. ചോദ്യചിഹ്നം "l" ഐച്ഛികമാക്കുന്നു. var regex2 = /l?est/g; console.log(text.match(regex2));

var text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit lest. Donec convallis dignissim ligula, et rutrum est elat vistibulum eu." ;

// "elit" ഉം "elat" ഉം ചെയ്യും. ഏത് ചിഹ്നവും ചെയ്യും എന്നാണ് ഡോട്ട് അർത്ഥമാക്കുന്നത്.

var regex = /el.t/g ;

കൺസോൾ. ലോഗ് (ടെക്സ്റ്റ്. പൊരുത്തം (റീജക്സ്));

// "est" ഉം "lest" ഉം ഒരുപോലെ നന്നായി പ്രവർത്തിക്കും. ചോദ്യചിഹ്നം "l" ഐച്ഛികമാക്കുന്നു.

var regex2 = /l?est/g ;

കൺസോൾ. ലോഗ് (ടെക്സ്റ്റ്. പൊരുത്തം (regex2));

ഒന്നിലധികം പ്രതീകങ്ങൾ പൊരുത്തപ്പെടുത്തുക

പരാൻതീസിസിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഒന്നോ അതിലധികമോ പ്രതീകങ്ങളാണ് സെറ്റ്, ഉദാഹരണത്തിന് . അത്തരമൊരു പദപ്രയോഗം ഒരു സ്ട്രിംഗിലെ ഈ പ്രതീകങ്ങളുടെ കൂട്ടം മാത്രമേ തിരയൂ - ഇൻ ഈ ഉദാഹരണത്തിൽ a, b അല്ലെങ്കിൽ c മാത്രം. നേരെമറിച്ച്, "^" ചിഹ്നം ഉപയോഗിച്ചല്ലാതെ നിങ്ങൾക്ക് ഏതെങ്കിലും ചിഹ്നങ്ങളുടെ സംഭവങ്ങൾക്കായി തിരയാൻ കഴിയും. എ, ബി അല്ലെങ്കിൽ സി അല്ലാത്ത ഏത് പ്രതീകവും [^abc] പൊരുത്തപ്പെടും. നിങ്ങൾക്ക് പ്രതീകങ്ങളുടെയോ അക്കങ്ങളുടെയോ ഒരു ശ്രേണി വ്യക്തമാക്കാനും കഴിയും, ഉദാഹരണത്തിന് , .

സാധാരണ പദപ്രയോഗങ്ങൾ എഴുതുന്നത് എളുപ്പമാക്കുന്ന അന്തർനിർമ്മിത പ്രതീക സെറ്റുകൾ ഉണ്ട്. അവയെ ചുരുക്കെഴുത്ത് അല്ലെങ്കിൽ ചുരുക്കെഴുത്ത് എന്ന് വിളിക്കുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് പകരം \D എഴുതാം. മറ്റ് പ്രതീകങ്ങൾക്ക് (നമ്പറുകളും അടിവരകളും ഉൾപ്പെടെ) - \w, \W, അതുപോലെ സ്‌പെയ്‌സുകൾക്കും - \s, \S എന്നിവയ്ക്ക് ചുരുക്കങ്ങളുണ്ട്.

// "കാറ്റ്" അല്ല "കാറ്റ്", "കാൻ" എന്നിവ മാത്രമേ പ്രവർത്തിക്കൂ. var ടെക്സ്റ്റ് = "പൂച്ച കാർ കഴിയും"; console.log(text.match(/ca/g)); // പൂച്ചയും ക്യാനും ഒഴികെ എല്ലാം കടന്നുപോകും (ഒരു ^ ചിഹ്നമുണ്ട്) console.log(text.match(/ca[^tn]/g)); // അക്കങ്ങൾ മാത്രം വാചകം നൽകുന്ന മറ്റൊരു ഉദാഹരണം = "എനിക്ക് 8 കപ്പ് കാപ്പി വേണം, ദയവായി."; console.log("എത്ര കപ്പുകൾ: " + text.match(//g)); // കുറുക്കുവഴി ഉപയോഗിക്കുന്നതിനുള്ള എളുപ്പവഴി \d console.log("എത്ര കപ്പുകൾ: " + text.match(/\d/g)); // കൺസോൾ.ലോഗ് (text.match(/\D/g)) എന്ന നമ്പറുകൾ ഒഴികെ എല്ലാം കടന്നുപോകുന്നു;

// "കാറ്റ്" അല്ല "കാറ്റ്", "കാൻ" എന്നിവ മാത്രമേ പ്രവർത്തിക്കൂ.

var ടെക്സ്റ്റ് = "പൂച്ച കാർ കഴിയും" ;

കൺസോൾ. ലോഗ്(ടെക്സ്റ്റ്. പൊരുത്തം(/ca/g));

// പൂച്ചയും ക്യാനും ഒഴികെ എല്ലാം കടന്നുപോകുന്നു (ഒരു ^ ചിഹ്നമുണ്ട്)

കൺസോൾ. ലോഗ് (ടെക്സ്റ്റ് . പൊരുത്തം (/ca[^tn]/g ) );

// അക്കങ്ങൾ മാത്രം കടന്നുപോകുന്ന മറ്റൊരു ഉദാഹരണം

text = "എനിക്ക് 8 കപ്പ് കാപ്പി വേണം, ദയവായി." ;

കൺസോൾ. ലോഗ് ("എത്ര കപ്പുകൾ:" + ടെക്സ്റ്റ് . പൊരുത്തം (//g ) );

// കുറുക്കുവഴി ഉപയോഗിക്കുന്നതിനുള്ള എളുപ്പവഴി \d

കൺസോൾ. ലോഗ്("എത്ര കപ്പുകൾ:" + ടെക്സ്റ്റ് . പൊരുത്തം (/\d/g ) );

// അക്കങ്ങൾ ഒഴികെ എല്ലാം കടന്നുപോകും

കൺസോൾ. ലോഗ് (ടെക്സ്റ്റ്. പൊരുത്തം (/\D/g));

പൊരുത്തപ്പെടുന്ന വാക്കുകൾ

മിക്ക കേസുകളിലും നിങ്ങൾ മുഴുവൻ വാക്കുകളും തിരയേണ്ടതുണ്ട് വ്യക്തിഗത പ്രതീകങ്ങൾ. ഒരു പ്രതീകമോ പ്രതീകങ്ങളുടെ കൂട്ടമോ ആവർത്തിക്കുന്ന മോഡിഫയറുകൾ (+), (-) എന്നിവ ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്.

(X) ചേർക്കുന്നത് ആവർത്തനങ്ങളുടെ കൃത്യമായ എണ്ണം വ്യക്തമാക്കുന്നു, (x, y) - ശ്രേണി (x, y എന്നിവ സംഖ്യകളാണ്).

കൂടാതെ, വാക്കുകളുടെ അറ്റത്തുള്ള അതിരുകളുമായി പൊരുത്തപ്പെടുന്ന ഒരു പ്രത്യേക പാറ്റേൺ \b ഉണ്ട്.

var text = "ഹലോ 1974 ലെ ആളുകൾ. ഞാൻ ഭാവിയിൽ നിന്നാണ് വന്നത്. 2014 ൽ ഞങ്ങൾക്ക് ലേസർ തോക്കുകളും ഹോവർ ബോർഡുകളും ഉണ്ട്, ചന്ദ്രനിൽ ജീവിക്കും!"; // വർഷങ്ങൾ കണ്ടെത്തും. \d+ വർഷം ഒന്നോ അതിലധികമോ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുംRegex = /\d+/g; console.log("വർഷങ്ങൾ: ", text.match(yearRegex)); // എല്ലാ വാക്യങ്ങളും കണ്ടെത്തുന്നു. ഞങ്ങളുടെ വാക്യങ്ങൾ ഒരു വലിയ അക്ഷരത്തിൽ ആരംഭിച്ച് ഒരു കാലയളവിലോ ആശ്ചര്യചിഹ്നത്തിലോ അവസാനിക്കുന്നു. var വാക്യംRegex = /.+?(\.|!)/g; console.log("വാക്യങ്ങൾ: ", text.match(sentenceRegex)); // "h" ൽ ആരംഭിക്കുന്ന എല്ലാ വാക്കുകളും കണ്ടെത്തുന്നു. വലിയക്ഷരവും ചെറിയക്ഷരവും നമുക്ക് അനുയോജ്യമാണ്, അതിനാൽ അതിർത്തി എന്ന വാക്ക് നിർവചിക്കാൻ i // \b മോഡിഫയർ ഉപയോഗിക്കുന്നു. var hWords = /\bh\w+/ig; console.log("H Words: ", text.match(hWords)); // 4 മുതൽ 6 വരെയുള്ള എല്ലാ വാക്കുകളും കണ്ടെത്തുന്നു var findWords = /\b\w(4,6)\b/g; console.log("4 മുതൽ 6 അക്ഷരങ്ങൾക്കിടയിലുള്ള വാക്കുകൾ: ", text.match(findWords)); // 5 പ്രതീകങ്ങളേക്കാൾ നീളമുള്ള വാക്കുകൾ കണ്ടെത്തുക console.log("വാക്കുകൾ 5 അക്ഷരങ്ങളോ അതിൽ കൂടുതലോ: ", text.match(/\b\w(5,)\b/g)); // കൃത്യമായി 6 പ്രതീകങ്ങൾ നീളമുള്ള വാക്കുകൾ കണ്ടെത്തുന്നു console.log("കൃത്യമായി 6 അക്ഷരങ്ങൾ നീളമുള്ള വാക്കുകൾ: ", text.match(/\b\w(6)\b/g));

var text = "ഹലോ 1974 ലെ ആളുകൾ. ഞാൻ ഭാവിയിൽ നിന്നാണ് വന്നത്. 2014 ൽ ഞങ്ങൾക്ക് ലേസർ തോക്കുകളും ഹോവർ ബോർഡുകളും ഉണ്ട്, ചന്ദ്രനിൽ ജീവിക്കും!" ;

// വർഷങ്ങൾ കണ്ടെത്തും. \d+ ഒന്നോ അതിലധികമോ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു

var yearRegex = /\d+/g ;

കൺസോൾ. ലോഗ് ( "വർഷങ്ങൾ:" , വാചകം . പൊരുത്തം ( yearRegex ) );

// എല്ലാ വാക്യങ്ങളും കണ്ടെത്തുന്നു. ഞങ്ങളുടെ വാക്യങ്ങൾ ഒരു വലിയ അക്ഷരത്തിൽ ആരംഭിച്ച് ഒരു കാലയളവിലോ ആശ്ചര്യചിഹ്നത്തിലോ അവസാനിക്കുന്നു.

var വാചകംRegex = /.+?(\.|!)/g ;

കൺസോൾ. ലോഗ് ("വാക്യങ്ങൾ: ", വാചകം. പൊരുത്തം (sentenceRegex));

// "h" ൽ ആരംഭിക്കുന്ന എല്ലാ വാക്കുകളും കണ്ടെത്തുന്നു. വലിയക്ഷരവും ചെറിയക്ഷരവും ഞങ്ങൾക്ക് അനുയോജ്യമാണ്, അതിനാൽ ഞങ്ങൾ i മോഡിഫയർ ഉപയോഗിക്കുന്നു

വാക്കിന്റെ അതിരുകൾ നിർണ്ണയിക്കാൻ // \b.

var hWords = /\bh\w+/i g ;

കൺസോൾ. ലോഗ് ("എച്ച് വാക്കുകൾ:" , ടെക്സ്റ്റ്. പൊരുത്തം (hWords ) );

// 4 മുതൽ 6 വരെ പ്രതീകങ്ങൾ വരെയുള്ള എല്ലാ വാക്കുകളും കണ്ടെത്തുന്നു

var findWords = /\b\w(4,6)\b/g ;

കൺസോൾ. ലോഗ് ("4 മുതൽ 6 അക്ഷരങ്ങൾക്കിടയിലുള്ള വാക്കുകൾ: ", ടെക്സ്റ്റ്. പൊരുത്തം(findWords));

// 5 പ്രതീകങ്ങളിൽ കൂടുതൽ നീളമുള്ള വാക്കുകൾ കണ്ടെത്തുക

കൺസോൾ. ലോഗ് ("വാക്കുകൾ 5 അക്ഷരങ്ങളോ അതിൽ കൂടുതലോ: " , വാചകം . പൊരുത്തം (/\b\w(5,)\b/g ) ;

// കൃത്യമായി 6 അക്ഷരങ്ങൾ നീളമുള്ള വാക്കുകൾ കണ്ടെത്തുക

കൺസോൾ. ലോഗ് ("കൃത്യമായി 6 അക്ഷരങ്ങൾ നീളമുള്ള വാക്കുകൾ: " , വാചകം . പൊരുത്തം (/\b\w(6)\b/g ) );

മുഴുവൻ സ്ട്രിംഗ് മൂല്യനിർണ്ണയം

JavaScript-ൽ, ടെക്സ്റ്റ് ഫീൽഡുകളിൽ നിന്നുള്ള ഉപയോക്തൃ ഇൻപുട്ട് സാധൂകരിക്കുന്നതിന് അത്തരം പദപ്രയോഗങ്ങൾ ഉപയോഗിക്കാം. സ്ട്രിംഗുകൾ സാധൂകരിക്കുന്നതിന്, ഈ ആവശ്യത്തിനായി ^ (വരിയുടെ ആരംഭം), $ (വരിയുടെ അവസാനം) എന്നീ പദപ്രയോഗങ്ങൾ ഉപയോഗിച്ച് ഒരു വാചക ശകലത്തിന്റെ തുടക്കത്തിലും അവസാനത്തിലും ബന്ധിപ്പിച്ചിരിക്കുന്ന ഒരു സാധാരണ പതിവ് പദപ്രയോഗം ഉപയോഗിക്കുന്നു. നിങ്ങൾ എഴുതുന്ന പാറ്റേൺ ടെക്‌സ്‌റ്റിന്റെ മുഴുവൻ നീളത്തിലും വ്യാപിച്ചുകിടക്കുന്നുവെന്നും അതിന്റെ ഭാഗവുമായി പൊരുത്തപ്പെടുന്നില്ലെന്നും ഈ ചിഹ്നങ്ങൾ ഉറപ്പാക്കുന്നു.

കൂടാതെ, ഈ സാഹചര്യത്തിൽ, ഞങ്ങൾ regex ഒബ്‌ജക്റ്റിന്റെ test() രീതി ഉപയോഗിക്കുന്നു, ഇത് പതിവ് എക്‌സ്‌പ്രഷൻ സ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നുണ്ടോ എന്ന് പരിശോധിക്കുമ്പോൾ ശരിയോ തെറ്റോ നൽകുന്നു.

// ഞങ്ങൾക്ക് സ്ട്രിംഗുകളുടെ ഒരു നിരയുണ്ട്, നമുക്ക് ലിങ്കുകൾ കണ്ടെത്താം..com/", "123461", "https://site/?s=google", "http://സാധുവായ url അല്ല", "abc http: / /invalid.url/" ]; var regex = /^https?:\/\/[\w\/?.&-=]+$/; var urls = ; for(var i = 0; i< strings.length; i++){ if(regex.test(strings[i])){ // Валидная ссылка urls.push(strings[i]); } } console.log("Valid URLs: ", urls);

// നമുക്ക് സ്ട്രിംഗുകളുടെ ഒരു നിരയുണ്ട്, നമുക്ക് ലിങ്കുകൾ കണ്ടെത്താം.

var സ്ട്രിംഗുകൾ = [

"https://site/",

"ഇതൊരു URL അല്ല" ,

"https://google.com/" ,

"123461" ,

"https://site/?s=google" ,

"http://സാധുവായ url അല്ല" ,

"abc http://invalid.url/"

var regex =/^ https? : \ / \ / [ \ w \ / ? . & -= ] + $ / ;

var urls = ;

വേണ്ടി (var i = 0 ; i< strings . length ; i ++ ) {

എങ്കിൽ (regex. ടെസ്റ്റ് (സ്ട്രിംഗുകൾ [i])) (

url. പുഷ്(സ്ട്രിംഗുകൾ[i]);

കൺസോൾ. ലോഗ് ("സാധുവായ URL-കൾ: ", url);

തിരയുകയും പകരം വയ്ക്കുകയും ചെയ്യുക

മറ്റൊന്ന് പൊതു ചുമതല, സാധാരണ പദപ്രയോഗങ്ങൾ ഉപയോഗിച്ച് സുഗമമാക്കുന്നത്, വാചകം തിരയുകയും മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു.

മോഡിഫയറുകൾ

ഒരു മോഡിഫയറിന് അടുത്തായി (U ഒഴികെ) സ്ഥാപിച്ചിരിക്കുന്ന മൈനസ് ചിഹ്നം (-) അതിന്റെ നിഷേധം സൃഷ്ടിക്കുന്നു.

പ്രത്യേക കഥാപാത്രങ്ങൾ അനലോഗ് വിവരണം
() ഉപപാറ്റേൺ, നെസ്റ്റഡ് എക്സ്പ്രഷൻ
വൈൽഡ്കാർഡ്
(എ,ബി) "a" മുതൽ "b" വരെയുള്ള സംഭവങ്ങളുടെ എണ്ണം
| ലോജിക്കൽ "അല്ലെങ്കിൽ", സിംഗിൾ ക്യാരക്ടർ ഇതര ഉപയോഗത്തിന്റെ കാര്യത്തിൽ
\ പ്രത്യേക സ്വഭാവത്തിൽ നിന്ന് രക്ഷപ്പെടുക
. ലൈൻ ഫീഡ് ഒഴികെയുള്ള ഏതെങ്കിലും പ്രതീകം
\d ദശാംശ അക്കം
\D[^\d]ഒരു ദശാംശ അക്കമല്ലാതെ മറ്റേതെങ്കിലും പ്രതീകം
\f അവസാനം (പേജ് ബ്രേക്ക്)
\n വരി വിവർത്തനം
\pL u മോഡിഫയർ ഉപയോഗിക്കുമ്പോൾ UTF-8 എൻകോഡിംഗിലുള്ള അക്ഷരം
\r വണ്ടി മടക്കം
\s[\t\v\r\n\f]ബഹിരാകാശ സ്വഭാവം
\S[^\s]മിന്നുന്ന ചിഹ്നം ഒഴികെയുള്ള ഏതെങ്കിലും ചിഹ്നം
\t ടാബുലേഷൻ
\w ഏതെങ്കിലും സംഖ്യ, അക്ഷരം അല്ലെങ്കിൽ അടിവര
\W[^\w]ഒരു അക്കമോ അക്ഷരമോ അടിവരയോ അല്ലാതെ മറ്റേതെങ്കിലും പ്രതീകം
\v ലംബ ടാബ്
ഒരു പ്രതീക ക്ലാസിനുള്ളിലെ പ്രത്യേക പ്രതീകങ്ങൾ ഒരു സ്ട്രിംഗിനുള്ളിലെ സ്ഥാനം ഉദാഹരണം പാലിക്കൽ വിവരണം
^ ^എaaaaaവരിയുടെ തുടക്കം
$ ഒരു $aaa aaaവരിയുടെ അവസാനം
\എ\Aaaaaaa
aaa aaa
വാചകത്തിന്റെ തുടക്കം
\za\zaaa aaa
aaa aaa
വാചകത്തിന്റെ അവസാനം
\ba\b
\ba
aaa aaa
a aa a aa
വാക്ക് അതിർത്തി, പ്രസ്താവന: മുമ്പത്തെ പ്രതീകം വാക്കാലുള്ളതാണ്, എന്നാൽ അടുത്തത് അല്ല, അല്ലെങ്കിൽ തിരിച്ചും
\B\Ba\Baa aa aaവാക്കിന്റെ അതിരുകളില്ല
\ജി\Gaaaa aaaമുമ്പത്തെ വിജയകരമായ തിരയൽ, തിരയൽ 4-ാം സ്ഥാനത്ത് നിർത്തി - അവിടെ a കണ്ടെത്താനായില്ല
PDF, PNG എന്നിവയിൽ ഡൗൺലോഡ് ചെയ്യുക

പതിവ് എക്സ്പ്രഷനുകളിലെ ആങ്കറുകൾ എന്തിന്റെയെങ്കിലും തുടക്കത്തെയോ അവസാനത്തെയോ സൂചിപ്പിക്കുന്നു. ഉദാഹരണത്തിന്, വരികൾ അല്ലെങ്കിൽ വാക്കുകൾ. അവ അവതരിപ്പിക്കുന്നു ചില പ്രതീകങ്ങൾ. ഉദാഹരണത്തിന്, ഒരു സംഖ്യയിൽ ആരംഭിക്കുന്ന ഒരു സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്ന ഒരു പാറ്റേൺ ഇതുപോലെ കാണപ്പെടും:

ഇവിടെ ^ പ്രതീകം വരിയുടെ തുടക്കത്തെ സൂചിപ്പിക്കുന്നു. അതില്ലാതെ, പാറ്റേൺ ഒരു അക്കം അടങ്ങുന്ന ഏതൊരു സ്ട്രിംഗുമായി പൊരുത്തപ്പെടും.

പ്രതീക ക്ലാസുകൾ

റെഗുലർ എക്സ്പ്രഷനുകളിലെ ക്യാരക്ടർ ക്ലാസുകൾ ഒരു നിശ്ചിത കൂട്ടം പ്രതീകങ്ങളുമായി ഒരേസമയം പൊരുത്തപ്പെടുന്നു. ഉദാഹരണത്തിന്, \d 0 മുതൽ 9 വരെയുള്ള ഏത് സംഖ്യയുമായി പൊരുത്തപ്പെടുന്നു, \w അക്ഷരങ്ങളും അക്കങ്ങളുമായി പൊരുത്തപ്പെടുന്നു, കൂടാതെ \W അക്ഷരങ്ങളും അക്കങ്ങളും ഒഴികെയുള്ള എല്ലാ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. അക്ഷരങ്ങളും അക്കങ്ങളും സ്ഥലവും തിരിച്ചറിയുന്ന പാറ്റേൺ ഇതുപോലെ കാണപ്പെടുന്നു:

പോസിക്സ്

സാധാരണ എക്‌സ്‌പ്രെഷൻ ഫാമിലിയിലേക്ക് താരതമ്യേന പുതിയ കൂട്ടിച്ചേർക്കലാണ് പോസിക്‌സ്. പ്രതീക ക്ലാസുകളിലെന്നപോലെ, ചില പ്രതീകങ്ങളുടെ കൂട്ടത്തെ പ്രതിനിധീകരിക്കുന്ന കുറുക്കുവഴികൾ ഉപയോഗിക്കുക എന്നതാണ് ആശയം.

പ്രസ്താവനകൾ

ഏതാണ്ടെല്ലാവർക്കും ആദ്യം സ്ഥിരീകരണങ്ങൾ മനസ്സിലാക്കുന്നതിൽ പ്രശ്‌നമുണ്ട്, എന്നാൽ നിങ്ങൾ അവയുമായി കൂടുതൽ പരിചിതനാകുമ്പോൾ, നിങ്ങൾ അവ പലപ്പോഴും ഉപയോഗിക്കുന്നത് കണ്ടെത്തും. ഈ പ്രമാണത്തിൽ "q" എന്ന അക്ഷരം ഉൾപ്പെടുന്ന എല്ലാ വാക്കും "വെർട്ടി" എന്ന് പറയാത്ത എല്ലാ വാക്കും കണ്ടെത്താൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

[^\s]*q(?!werty)[^\s]*

മുകളിലെ കോഡ് ആരംഭിക്കുന്നത് സ്‌പെയ്‌സ് ([^\s]*) കൂടാതെ q ന് ശേഷം മറ്റേതെങ്കിലും പ്രതീകങ്ങൾക്കായി തിരയുന്നതിലൂടെയാണ്. പാഴ്‌സർ പിന്നീട് മുന്നോട്ട് നോക്കുന്ന ഒരു വാദത്തിൽ എത്തിച്ചേരുന്നു. ഇത് സ്വപ്രേരിതമായി മുമ്പത്തെ ഘടകത്തെ (കഥാപാത്രം, ഗ്രൂപ്പ് അല്ലെങ്കിൽ പ്രതീക ക്ലാസ്) സോപാധികമാക്കുന്നു - പ്രസ്താവന ശരിയാണെങ്കിൽ മാത്രമേ അത് പാറ്റേണുമായി പൊരുത്തപ്പെടൂ. ഞങ്ങളുടെ കാര്യത്തിൽ, പ്രസ്താവന നെഗറ്റീവ് ആണ് (?!), അതായത്, അതിൽ അന്വേഷിക്കുന്നത് കണ്ടെത്തിയില്ലെങ്കിൽ അത് ശരിയാകും.

അതിനാൽ, പാഴ്‌സർ നിർദ്ദേശിച്ച പാറ്റേണിനെതിരെ (വെർട്ടി) അടുത്ത കുറച്ച് പ്രതീകങ്ങൾ പരിശോധിക്കുന്നു. അവ കണ്ടെത്തിയാൽ, പ്രസ്താവന തെറ്റാണ്, അതായത് q എന്ന പ്രതീകം "അവഗണിക്കും", അതായത്, അത് പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നില്ല. വെർട്ടി കണ്ടെത്തിയില്ലെങ്കിൽ, പ്രസ്താവന ശരിയാണ്, എല്ലാം q ന് ക്രമത്തിലാണ്. അപ്പോൾ സ്‌പെയ്‌സ് ([^\s]*) ഒഴികെയുള്ള ഏതെങ്കിലും പ്രതീകങ്ങൾക്കായി തിരയൽ തുടരുന്നു.

ക്വാണ്ടിഫയറുകൾ

തുടർച്ചയായി നിരവധി തവണ ആവർത്തിക്കേണ്ട ഒരു പാറ്റേണിന്റെ ഒരു ഭാഗം നിർവചിക്കാൻ ക്വാണ്ടിഫയറുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ഡോക്യുമെന്റിൽ 10 മുതൽ 20 വരെ (ഉൾക്കൊള്ളുന്ന) അക്ഷരങ്ങൾ "a" അടങ്ങിയിട്ടുണ്ടോ എന്ന് കണ്ടെത്തണമെങ്കിൽ, നിങ്ങൾക്ക് ഈ പാറ്റേൺ ഉപയോഗിക്കാം:

എ(10,20)

സ്ഥിരസ്ഥിതിയായി, ക്വാണ്ടിഫയറുകൾ "അത്യാഗ്രഹം" ആണ്. അതിനാൽ, "ഒന്നോ അതിലധികമോ തവണ" എന്നർത്ഥമുള്ള ക്വാണ്ടിഫയർ + സാധ്യമായ പരമാവധി മൂല്യവുമായി പൊരുത്തപ്പെടും. ചിലപ്പോൾ ഇത് പ്രശ്‌നങ്ങൾ ഉണ്ടാക്കുന്നു, ഈ സാഹചര്യത്തിൽ ഒരു പ്രത്യേക മോഡിഫയർ ഉപയോഗിച്ച് അത്യാഗ്രഹം ("അലസമായി" മാറുക) നിർത്താൻ നിങ്ങൾക്ക് ക്വാണ്ടിഫയറിനോട് പറയാൻ കഴിയും. ഈ കോഡ് നോക്കൂ:

".*"

ഈ പാറ്റേൺ ഇരട്ട ഉദ്ധരണികളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന വാചകവുമായി പൊരുത്തപ്പെടുന്നു. എന്നിരുന്നാലും, നിങ്ങളുടെ ഉറവിട വരി ഇതുപോലെയായിരിക്കാം:

ഹലോ വേൾഡ്

മുകളിലുള്ള ടെംപ്ലേറ്റ് ഈ വരിയിൽ ഇനിപ്പറയുന്ന സബ്‌സ്ട്രിംഗ് കണ്ടെത്തും:

"helloworld.htm" title="Hello World" !}

തനിക്ക് കഴിയുന്ന ഏറ്റവും വലിയ വാചകം കൈക്കലാക്കി അയാൾ അത്യാഗ്രഹിയായി മാറി.

".*?"

ഈ പാറ്റേൺ ഇരട്ട ഉദ്ധരണികളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഏതെങ്കിലും പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. എന്നാൽ അലസമായ പതിപ്പ് (മോഡിഫയർ ശ്രദ്ധിക്കുക?) സാധ്യമായ ഏറ്റവും ചെറിയ സംഭവത്തിനായി തിരയുന്നു, അതിനാൽ ഓരോ ഇരട്ട-ഉദ്ധരിച്ച സബ്‌സ്‌ട്രിംഗും വ്യക്തിഗതമായി കണ്ടെത്തും:

"helloworld.htm" "ഹലോ വേൾഡ്"

പതിവ് ഭാവങ്ങളിൽ രക്ഷപ്പെടൽ

ഒരു പാറ്റേണിന്റെ വിവിധ ഭാഗങ്ങളെ പ്രതിനിധീകരിക്കുന്നതിന് റെഗുലർ എക്സ്പ്രഷനുകൾ ചില പ്രതീകങ്ങൾ ഉപയോഗിക്കുന്നു. എന്നിരുന്നാലും, ഒരു സാധാരണ പ്രതീകം പോലെ, ഒരു സ്ട്രിംഗിൽ ഈ പ്രതീകങ്ങളിലൊന്ന് കണ്ടെത്തണമെങ്കിൽ ഒരു പ്രശ്നം ഉയർന്നുവരുന്നു. ഉദാഹരണത്തിന്, ഒരു ഡോട്ട്, ഒരു സാധാരണ പദപ്രയോഗത്തിൽ അർത്ഥമാക്കുന്നത് "ഒരു ലൈൻ ബ്രേക്ക് അല്ലാതെ മറ്റേതെങ്കിലും പ്രതീകം" എന്നാണ്. നിങ്ങൾക്ക് ഒരു സ്‌ട്രിംഗിൽ ഒരു പോയിന്റ് കണ്ടെത്തണമെങ്കിൽ, നിങ്ങൾക്ക് " എന്നുപയോഗിക്കാൻ കഴിയില്ല. »ഒരു ടെംപ്ലേറ്റായി - ഇത് മിക്കവാറും എന്തും കണ്ടെത്തുന്നതിലേക്ക് നയിക്കും. അതിനാൽ, ഈ ഡോട്ട് ഒരു സാധാരണ ഡോട്ടായി കണക്കാക്കണമെന്നും "ഏതെങ്കിലും പ്രതീകം" അല്ലെന്നും നിങ്ങൾ പാഴ്സറോട് പറയേണ്ടതുണ്ട്. ഒരു രക്ഷപ്പെടൽ അടയാളം ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്.

ഒരു ഡോട്ട് പോലെയുള്ള ഒരു പ്രതീകത്തിന് മുമ്പുള്ള ഒരു രക്ഷപ്പെടൽ പ്രതീകം പാഴ്‌സർ അതിന്റെ പ്രവർത്തനത്തെ അവഗണിക്കാനും അതിനെ ഒരു സാധാരണ പ്രതീകമായി കണക്കാക്കാനും കാരണമാകുന്നു. മിക്ക ടെംപ്ലേറ്റുകളിലും ഭാഷകളിലും അത്തരം രക്ഷപ്പെടൽ ആവശ്യമായ നിരവധി പ്രതീകങ്ങളുണ്ട്. ചീറ്റ് ഷീറ്റിന്റെ താഴെ വലത് കോണിൽ നിങ്ങൾക്ക് അവ കണ്ടെത്താനാകും ("മെറ്റാ ചിഹ്നങ്ങൾ").

ഒരു പോയിന്റ് കണ്ടെത്തുന്നതിനുള്ള പാറ്റേൺ ഇതാണ്:

\.

പതിവ് എക്സ്പ്രഷനുകളിലെ മറ്റ് പ്രത്യേക പ്രതീകങ്ങൾ ടെക്സ്റ്റിലെ അസാധാരണ ഘടകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. ഉദാഹരണത്തിന്, ലൈൻ ബ്രേക്കുകളും ടാബുകളും കീബോർഡിൽ ടൈപ്പ് ചെയ്യാമെങ്കിലും പ്രോഗ്രാമിംഗ് ഭാഷകളെ ആശയക്കുഴപ്പത്തിലാക്കാൻ സാധ്യതയുണ്ട്. പാഴ്‌സറോട് അടുത്ത കഥാപാത്രത്തെ പ്രത്യേകമായി പരിഗണിക്കുന്നതിനുപകരം പ്രത്യേകമായി പരിഗണിക്കാൻ പറയാൻ ഇവിടെ രക്ഷപ്പെടൽ പ്രതീകം ഉപയോഗിക്കുന്നു ഒരു സാധാരണ കത്ത്അല്ലെങ്കിൽ നമ്പർ.

റെഗുലർ എക്സ്പ്രഷനുകളിൽ പ്രത്യേക എസ്കേപ്പിംഗ് പ്രതീകങ്ങൾ സ്ട്രിംഗ് സബ്സ്റ്റിറ്റ്യൂഷൻ

"ഗ്രൂപ്പുകളും ശ്രേണികളും" എന്ന അടുത്ത ഖണ്ഡികയിൽ സ്ട്രിംഗ് സബ്സ്റ്റിറ്റ്യൂഷൻ വിശദമായി വിവരിച്ചിരിക്കുന്നു, എന്നാൽ "നിഷ്ക്രിയ" ഗ്രൂപ്പുകളുടെ അസ്തിത്വം ഇവിടെ പരാമർശിക്കേണ്ടതാണ്. സബ്‌സ്റ്റിറ്റ്യൂഷൻ സമയത്ത് അവഗണിക്കപ്പെടുന്ന ഗ്രൂപ്പുകളാണിവ, നിങ്ങൾക്ക് ഒരു പാറ്റേണിൽ "അല്ലെങ്കിൽ" വ്യവസ്ഥ ഉപയോഗിക്കണമെങ്കിൽ അത് വളരെ ഉപയോഗപ്രദമാണ്, എന്നാൽ ആ ഗ്രൂപ്പ് സബ്‌സ്റ്റിറ്റ്യൂഷനിൽ പങ്കെടുക്കാൻ ആഗ്രഹിക്കുന്നില്ല.

ഗ്രൂപ്പുകളും ശ്രേണികളും

ഗ്രൂപ്പുകളും ശ്രേണികളും വളരെ വളരെ ഉപയോഗപ്രദമാണ്. ശ്രേണികളിൽ നിന്ന് ആരംഭിക്കുന്നത് ഒരുപക്ഷേ എളുപ്പമായിരിക്കും. അനുയോജ്യമായ പ്രതീകങ്ങളുടെ ഒരു കൂട്ടം വ്യക്തമാക്കാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു സ്‌ട്രിംഗിൽ ഹെക്‌സാഡെസിമൽ അക്കങ്ങൾ (0 മുതൽ 9 വരെയും A മുതൽ F വരെയും) അടങ്ങിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ, നിങ്ങൾ ഇനിപ്പറയുന്ന ശ്രേണി ഉപയോഗിക്കും:

വിപരീതം പരിശോധിക്കാൻ, ഒരു നെഗറ്റീവ് ശ്രേണി ഉപയോഗിക്കുക, അത് ഞങ്ങളുടെ കാര്യത്തിൽ 0 മുതൽ 9 വരെയുള്ള അക്കങ്ങളും എ മുതൽ എഫ് വരെയുള്ള അക്ഷരങ്ങളും ഒഴികെ ഏത് പ്രതീകത്തിനും അനുയോജ്യമാണ്:

[^A-Fa-f0-9]

ഒരു പാറ്റേണിൽ ഒരു "അല്ലെങ്കിൽ" അവസ്ഥ ആവശ്യമുള്ളപ്പോൾ ഗ്രൂപ്പുകൾ മിക്കപ്പോഴും ഉപയോഗിക്കുന്നു; ഒരു ടെംപ്ലേറ്റിന്റെ ഭാഗം അതിന്റെ മറ്റൊരു ഭാഗത്ത് നിന്ന് റഫർ ചെയ്യേണ്ടിവരുമ്പോൾ; കൂടാതെ സ്ട്രിംഗുകൾ മാറ്റിസ്ഥാപിക്കുമ്പോഴും.

"അല്ലെങ്കിൽ" ഉപയോഗിക്കുന്നത് വളരെ ലളിതമാണ്: ഇനിപ്പറയുന്ന പാറ്റേൺ "ab" അല്ലെങ്കിൽ "bc" എന്നിവയ്ക്കായി തിരയുന്നു:

ഒരു സാധാരണ പദപ്രയോഗത്തിൽ മുമ്പത്തെ ഏതെങ്കിലും ഗ്രൂപ്പുകളെ പരാമർശിക്കേണ്ടത് ആവശ്യമാണെങ്കിൽ, നിങ്ങൾ \n ഉപയോഗിക്കണം, ഇവിടെ n എന്നതിന് പകരം നമ്പർ നൽകുക ആവശ്യമുള്ള ഗ്രൂപ്പ്. "aaa" അല്ലെങ്കിൽ "bbb" എന്ന അക്ഷരങ്ങൾക്ക് ശേഷം ഒരു സംഖ്യയും തുടർന്ന് അതേ മൂന്ന് അക്ഷരങ്ങളും പൊരുത്തപ്പെടുന്ന ഒരു പാറ്റേൺ നിങ്ങൾക്ക് ആവശ്യമായി വന്നേക്കാം. ഗ്രൂപ്പുകൾ ഉപയോഗിച്ചാണ് ഈ പാറ്റേൺ നടപ്പിലാക്കുന്നത്:

(aaa|bbb)+\1

പാറ്റേണിന്റെ ആദ്യഭാഗം "aaa" അല്ലെങ്കിൽ "bbb" എന്നിവയ്ക്കായി തിരയുന്നു, ഒരു ഗ്രൂപ്പിൽ കാണുന്ന അക്ഷരങ്ങൾ സംയോജിപ്പിക്കുന്നു. ഇതിനെ തുടർന്ന് ഒന്നോ അതിലധികമോ അക്കങ്ങൾ (+), അവസാനം \1 എന്നിവയ്ക്കായി തിരയുന്നു. പാറ്റേണിന്റെ അവസാന ഭാഗം ആദ്യ ഗ്രൂപ്പിനെ പരാമർശിക്കുകയും അതേ കാര്യം അന്വേഷിക്കുകയും ചെയ്യുന്നു. പാറ്റേണിന്റെ ആദ്യഭാഗം ഇതിനകം കണ്ടെത്തിയ ടെക്‌സ്റ്റുമായി ഇത് പൊരുത്തത്തിനായി നോക്കുന്നു, അതിനോട് പൊരുത്തപ്പെടുന്നില്ല. അതിനാൽ "aaa123bbb" മുകളിലെ പാറ്റേൺ തൃപ്തിപ്പെടുത്തില്ല, കാരണം \1 നമ്പറിന് ശേഷം "aaa" എന്ന് നോക്കും.

ഏറ്റവും കൂടുതൽ ഒന്ന് ഉപയോഗപ്രദമായ ഉപകരണങ്ങൾറെഗുലർ എക്സ്പ്രഷനുകളിൽ സ്ട്രിംഗ് സബ്സ്റ്റിറ്റ്യൂഷൻ ആണ്. ടെക്‌സ്‌റ്റ് മാറ്റിസ്ഥാപിക്കുമ്പോൾ, $n ഉപയോഗിച്ച് നിങ്ങൾക്ക് കണ്ടെത്തിയ ഗ്രൂപ്പിനെ പരാമർശിക്കാം. വാചകത്തിലെ "ആഗ്രഹം" എന്ന എല്ലാ വാക്കുകളും ബോൾഡായി ഹൈലൈറ്റ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ ഒരു സാധാരണ എക്സ്പ്രഷൻ റീപ്ലേസ് ഫംഗ്ഷൻ ഉപയോഗിക്കണം, അത് ഇതുപോലെയായിരിക്കാം:

മാറ്റിസ്ഥാപിക്കുക (പാറ്റേൺ, മാറ്റിസ്ഥാപിക്കൽ, വിഷയം)

ആദ്യ പാരാമീറ്റർ ഇതുപോലെയായിരിക്കും (ഈ പ്രത്യേക പ്രവർത്തനത്തിനായി നിങ്ങൾക്ക് കുറച്ച് അധിക പ്രതീകങ്ങൾ ആവശ്യമായി വന്നേക്കാം):

([^A-Za-z0-9])(ആഗ്രഹം)([^A-Za-z0-9])

അക്ഷരങ്ങളോ അക്കങ്ങളോ അല്ലാത്തിടത്തോളം, മുമ്പത്തേതും അടുത്തതുമായ പ്രതീകങ്ങൾക്കൊപ്പം "വിഷ്" എന്ന വാക്കിന്റെ ഏതെങ്കിലും സംഭവങ്ങൾ ഇത് കണ്ടെത്തും. അപ്പോൾ നിങ്ങളുടെ പകരക്കാരൻ ഇതുപോലെയാകാം:

$1$2$3

പാറ്റേൺ ഉപയോഗിച്ച് കണ്ടെത്തിയ മുഴുവൻ സ്ട്രിംഗും ഇത് മാറ്റിസ്ഥാപിക്കും. ഞങ്ങൾ ആദ്യം കണ്ടെത്തിയ പ്രതീകം (അത് ഒരു അക്ഷരമോ അക്കമോ അല്ല) ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാൻ തുടങ്ങുന്നു, അത് $1 എന്ന് അടയാളപ്പെടുത്തുന്നു. ഇത് കൂടാതെ, ഞങ്ങൾ ഈ പ്രതീകം വാചകത്തിൽ നിന്ന് നീക്കംചെയ്യും. പകരക്കാരന്റെ ($3) അവസാനത്തിനും ഇത് ബാധകമാണ്. മധ്യത്തിൽ ഞങ്ങൾ ചേർത്തു HTML ടാഗ്ബോൾഡായി (തീർച്ചയായും, നിങ്ങൾക്ക് CSS അല്ലെങ്കിൽ പകരം ഉപയോഗിക്കാം), ടെംപ്ലേറ്റിൽ നിന്ന് ($2) കണ്ടെത്തിയ രണ്ടാമത്തെ ഗ്രൂപ്പിനെ ഹൈലൈറ്റ് ചെയ്യുന്നു.

റെഗുലർ എക്സ്പ്രഷനുകൾ

ഒരു സാധാരണ പദപ്രയോഗം എന്നത് ഒരു പ്രതീക പാറ്റേൺ വിവരിക്കുന്ന ഒരു വസ്തുവാണ്. JavaScript-ലെ RegExp ക്ലാസ് റെഗുലർ എക്സ്പ്രഷനുകളെ പ്രതിനിധീകരിക്കുന്നു, കൂടാതെ String, RegExp ക്ലാസ് ഒബ്‌ജക്‌റ്റുകൾ പാറ്റേൺ പൊരുത്തപ്പെടുത്തലും ടെക്‌സ്‌റ്റ് തിരയലും മാറ്റിസ്ഥാപിക്കൽ പ്രവർത്തനങ്ങളും നടത്താൻ സാധാരണ എക്‌സ്‌പ്രഷനുകൾ ഉപയോഗിക്കുന്ന രീതികളെ നിർവചിക്കുന്നു. റെഗുലർ എക്സ്പ്രഷൻ വ്യാകരണം ജാവാസ്ക്രിപ്റ്റ് Perl 5-ൽ ഉപയോഗിച്ചിരിക്കുന്ന റെഗുലർ എക്‌സ്‌പ്രഷൻ സിന്റാക്‌സിന്റെ പൂർണ്ണമായ ഒരു ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു, അതിനാൽ നിങ്ങൾക്ക് പേൾ ഭാഷയിൽ പരിചയമുണ്ടെങ്കിൽ, JavaScript പ്രോഗ്രാമുകളിലെ പാറ്റേണുകൾ നിങ്ങൾക്ക് എളുപ്പത്തിൽ വിവരിക്കാം.

ECMAScript-ൽ പിന്തുണയ്‌ക്കാത്ത Perl റെഗുലർ എക്‌സ്‌പ്രഷനുകളുടെ സവിശേഷതകളിൽ s (സിംഗിൾ-ലൈൻ മോഡ്), x (വിപുലീകരിച്ച വാക്യഘടന) ഫ്ലാഗുകൾ ഉൾപ്പെടുന്നു; എസ്കേപ്പ് സീക്വൻസുകൾ \a, \e, \l, \u, \L, \U, \E, \Q, \A, \Z, \z, \G എന്നിവയും (?.

റെഗുലർ എക്സ്പ്രഷനുകൾ നിർവചിക്കുന്നു

IN JavaScript റെഗുലർഎക്സ്പ്രഷനുകൾ RegExp ഒബ്ജക്റ്റുകൾ പ്രതിനിധീകരിക്കുന്നു. RegExp ഒബ്‌ജക്റ്റുകൾ RegExp() കൺസ്ട്രക്‌റ്റർ ഉപയോഗിച്ച് സൃഷ്‌ടിക്കാൻ കഴിയും, എന്നാൽ മിക്കപ്പോഴും അവ ഉപയോഗിച്ചാണ് സൃഷ്‌ടിക്കുന്നത് പ്രത്യേക വാക്യഘടനഅക്ഷരങ്ങൾ. സ്ട്രിംഗ് ലിറ്ററലുകളെ ഉദ്ധരണി ചിഹ്നങ്ങളാൽ ചുറ്റപ്പെട്ട പ്രതീകങ്ങളായി വ്യക്തമാക്കിയിരിക്കുന്നതുപോലെ, പതിവ് എക്സ്പ്രഷൻ ലിറ്ററലുകൾ ഒരു ജോടി സ്ലാഷ് പ്രതീകങ്ങളാൽ ചുറ്റപ്പെട്ട പ്രതീകങ്ങളായി വ്യക്തമാക്കുന്നു (/). അതിനാൽ നിങ്ങളുടെ JavaScript കോഡിൽ ഇതുപോലുള്ള വരികൾ അടങ്ങിയിരിക്കാം:

Var പാറ്റേൺ = /s$/;

ഈ വരി സൃഷ്ടിക്കുന്നു പുതിയ വസ്തു RegExp അത് പാറ്റേൺ വേരിയബിളിലേക്ക് അസൈൻ ചെയ്യുന്നു. ഈ വസ്തു RegExp ഒരു "s" ൽ അവസാനിക്കുന്ന ഏതെങ്കിലും സ്ട്രിംഗുകൾക്കായി തിരയുന്നു. RegExp() കൺസ്ട്രക്റ്റർ ഉപയോഗിച്ച് ഇതേ റെഗുലർ എക്സ്പ്രഷൻ നിർവചിക്കാം:

Var പാറ്റേൺ = പുതിയ RegExp("s$");

ഒരു റെഗുലർ എക്സ്പ്രഷൻ പാറ്റേൺ സ്പെസിഫിക്കേഷനിൽ പ്രതീകങ്ങളുടെ ഒരു ശ്രേണി അടങ്ങിയിരിക്കുന്നു. എല്ലാ ആൽഫാന്യൂമെറിക്കുകളും ഉൾപ്പെടെ മിക്ക പ്രതീകങ്ങളും, ഉണ്ടായിരിക്കേണ്ട പ്രതീകങ്ങളെ അക്ഷരാർത്ഥത്തിൽ വിവരിക്കുന്നു. അതായത്, "java" എന്ന സബ്‌സ്ട്രിംഗ് അടങ്ങിയ എല്ലാ വരികളുമായും റെഗുലർ എക്സ്പ്രഷൻ /java/ പൊരുത്തപ്പെടുന്നു.

പതിവ് പദപ്രയോഗങ്ങളിലെ മറ്റ് പ്രതീകങ്ങൾ അവയുടെ കൃത്യമായ തുല്യതകൾ കണ്ടെത്താൻ ഉദ്ദേശിച്ചുള്ളതല്ല, മറിച്ച് പ്രത്യേക അർത്ഥങ്ങൾ ഉള്ളവയാണ്. ഉദാഹരണത്തിന്, /s$/ എന്ന പതിവ് പദപ്രയോഗത്തിൽ രണ്ട് പ്രതീകങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ആദ്യത്തെ പ്രതീകങ്ങൾ അക്ഷരാർത്ഥത്തിലുള്ള ഒരു കഥാപാത്രത്തിനായുള്ള തിരയലിനെ സൂചിപ്പിക്കുന്നു. രണ്ടാമതായി, $ എന്നത് ഒരു വരിയുടെ അവസാനത്തെ അടയാളപ്പെടുത്തുന്ന ഒരു പ്രത്യേക മെറ്റാക്യാക്‌ടറാണ്. അതിനാൽ ഈ റെഗുലർ എക്‌സ്‌പ്രഷൻ s എന്ന അക്ഷരത്തിൽ അവസാനിക്കുന്ന ഏതൊരു സ്‌ട്രിംഗുമായും പൊരുത്തപ്പെടുന്നു.

ജാവാസ്ക്രിപ്റ്റിലെ പതിവ് എക്‌സ്‌പ്രഷനുകളിൽ ഉപയോഗിക്കുന്ന വിവിധ പ്രതീകങ്ങളും മെറ്റാക്യാരാക്‌ടറുകളും ഇനിപ്പറയുന്ന വിഭാഗങ്ങൾ വിവരിക്കുന്നു.

അക്ഷര കഥാപാത്രങ്ങൾ

നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, സാധാരണ പദപ്രയോഗങ്ങളിലെ എല്ലാ അക്ഷരങ്ങളും അക്കങ്ങളും അവയുമായി പൊരുത്തപ്പെടുന്നു. JavaScript-ലെ റെഗുലർ എക്‌സ്‌പ്രഷൻ സിന്റാക്‌സ് ഒരു ബാക്ക്‌സ്ലാഷ് (\) പ്രതീകത്തിൽ ആരംഭിക്കുന്ന എസ്‌കേപ്പ് സീക്വൻസുകൾ ഉപയോഗിച്ച് ചില അക്ഷരങ്ങളല്ലാത്ത പ്രതീകങ്ങൾ വ്യക്തമാക്കാനുള്ള കഴിവിനെ പിന്തുണയ്ക്കുന്നു. ഉദാഹരണത്തിന്, സീക്വൻസ് \n ന്യൂലൈൻ പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. ഈ ചിഹ്നങ്ങൾ ചുവടെയുള്ള പട്ടികയിൽ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു:

സാധാരണ പദപ്രയോഗങ്ങളിൽ ചില വിരാമചിഹ്നങ്ങൾക്ക് പ്രത്യേക അർത്ഥങ്ങളുണ്ട്:

^ $ . * + ? = ! : | \ / () { } -

ഈ ചിഹ്നങ്ങളുടെ അർത്ഥം ഇനിപ്പറയുന്ന വിഭാഗങ്ങളിൽ വിശദീകരിച്ചിരിക്കുന്നു. അവയിൽ ചിലത് ചില പതിവ് എക്സ്പ്രഷൻ സന്ദർഭങ്ങളിൽ മാത്രമേ പ്രത്യേക അർത്ഥമുള്ളൂ, മറ്റ് സന്ദർഭങ്ങളിൽ അവ അക്ഷരാർത്ഥത്തിൽ വ്യാഖ്യാനിക്കപ്പെടുന്നു. എന്നിരുന്നാലും, പൊതുവായി, ഒരു സാധാരണ പദപ്രയോഗത്തിൽ ഈ പ്രതീകങ്ങളിൽ ഏതെങ്കിലും അക്ഷരാർത്ഥത്തിൽ ഉൾപ്പെടുത്തുന്നതിന്, നിങ്ങൾ അതിന് മുമ്പായി ഒരു ബാക്ക്സ്ലാഷ് പ്രതീകം നൽകണം. ഉദ്ധരണികൾ, @ എന്നിവ പോലുള്ള മറ്റ് പ്രതീകങ്ങൾക്ക് പ്രത്യേക അർത്ഥമില്ല, സാധാരണ പദപ്രയോഗങ്ങളിൽ അവ പൊരുത്തപ്പെടുന്നു.

ഏതൊക്കെ പ്രതീകങ്ങൾക്ക് മുമ്പായി \ എന്നെഴുതണം എന്ന് നിങ്ങൾക്ക് കൃത്യമായി ഓർമ്മയില്ലെങ്കിൽ, ഏതെങ്കിലും പ്രതീകങ്ങൾക്ക് മുന്നിൽ നിങ്ങൾക്ക് സുരക്ഷിതമായി ഒരു ബാക്ക്സ്ലാഷ് ഇടാം. എന്നിരുന്നാലും, സ്ലാഷ് പ്രതീകവുമായി സംയോജിപ്പിക്കുമ്പോൾ പല അക്ഷരങ്ങളും അക്കങ്ങളും പ്രത്യേക അർത്ഥങ്ങൾ എടുക്കുന്നു, അതിനാൽ നിങ്ങൾ അക്ഷരാർത്ഥത്തിൽ തിരയുന്ന അക്ഷരങ്ങൾക്കും അക്കങ്ങൾക്കും മുമ്പായി \ പ്രതീകം ഉണ്ടാകരുത്. ഒരു റെഗുലർ എക്സ്പ്രഷനിൽ ബാക്ക്സ്ലാഷ് പ്രതീകം തന്നെ ഉൾപ്പെടുത്തുന്നതിന്, നിങ്ങൾ അതിന് മുമ്പായി മറ്റൊരു ബാക്ക്സ്ലാഷ് പ്രതീകം നൽകണം. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന റെഗുലർ എക്‌സ്‌പ്രഷൻ ഒരു ബാക്ക്‌സ്ലാഷ് പ്രതീകം അടങ്ങിയിരിക്കുന്ന ഏതെങ്കിലും സ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു: /\\/.

പ്രതീക ക്ലാസുകൾ

ചതുരാകൃതിയിലുള്ള ബ്രാക്കറ്റുകളിൽ ഉൾപ്പെടുത്തി വ്യക്തിഗത അക്ഷരങ്ങളെ പ്രതീക ക്ലാസുകളായി സംയോജിപ്പിക്കാം. ഒരു പ്രതീക ക്ലാസ് ആ ക്ലാസിൽ അടങ്ങിയിരിക്കുന്ന ഏത് പ്രതീകവുമായും പൊരുത്തപ്പെടുന്നു. അതിനാൽ, പതിവ് പദപ്രയോഗം // a, b അല്ലെങ്കിൽ c പ്രതീകങ്ങളിൽ ഒന്നുമായി പൊരുത്തപ്പെടുന്നു.

പരാൻതീസിസിൽ വ്യക്തമാക്കിയിട്ടുള്ളവ ഒഴികെ ഏത് പ്രതീകവുമായും പൊരുത്തപ്പെടുന്ന തരത്തിൽ നെഗറ്റീവ് ക്യാരക്ടർ ക്ലാസുകളും നിർവചിക്കാം. ഇടത് പരാന്തീസിസിന് ശേഷമുള്ള ആദ്യത്തെ പ്രതീകമായി ^ പ്രതീകം നിഷേധ പ്രതീക ക്ലാസ് വ്യക്തമാക്കുന്നു. പതിവ് പദപ്രയോഗം /[^abc]/ a, b അല്ലെങ്കിൽ c ഒഴികെയുള്ള ഏത് പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. പ്രതീക ക്ലാസുകളിൽ, ഒരു ഹൈഫൻ ഉപയോഗിച്ച് പ്രതീകങ്ങളുടെ ഒരു ശ്രേണി വ്യക്തമാക്കാം. എല്ലാ പ്രതീകങ്ങളും തിരയുക ലാറ്റിൻ അക്ഷരമാലവി ചെറിയക്ഷരം// എക്സ്പ്രഷൻ ഉപയോഗിച്ചാണ് ചെയ്യുന്നത്, കൂടാതെ ലാറ്റിൻ പ്രതീക സെറ്റിൽ നിന്നുള്ള ഏതെങ്കിലും അക്ഷരമോ അക്കമോ // എക്സ്പ്രഷൻ ഉപയോഗിച്ച് കണ്ടെത്താനാകും.

ചില പ്രതീക ക്ലാസുകൾ പ്രത്യേകിച്ചും സാധാരണമാണ്, അതിനാൽ ജാവാസ്ക്രിപ്റ്റിലെ റെഗുലർ എക്സ്പ്രഷൻ വാക്യഘടനയിൽ പ്രത്യേക പ്രതീകങ്ങളും അവയെ പ്രതിനിധീകരിക്കുന്നതിനുള്ള എസ്കേപ്പ് സീക്വൻസുകളും ഉൾപ്പെടുന്നു. അങ്ങനെ, \s സ്പേസ്, ടാബ്, ഏതെങ്കിലും യൂണികോഡ് വൈറ്റ്സ്പേസ് പ്രതീകങ്ങൾ എന്നിവയുമായി പൊരുത്തപ്പെടുന്നു, കൂടാതെ യൂണികോഡ് ഇതര വൈറ്റ്സ്പേസ് പ്രതീകങ്ങളുമായി \S പൊരുത്തപ്പെടുന്നു.

ചുവടെയുള്ള പട്ടിക ഈ പ്രത്യേക പ്രതീകങ്ങളുടെ ഒരു ലിസ്റ്റും പ്രതീക ക്ലാസുകളുടെ വാക്യഘടനയും നൽകുന്നു. (ചില ക്യാരക്‌ടർ ക്ലാസ് എസ്‌കേപ്പ് സീക്വൻസുകൾ ASCII പ്രതീകങ്ങളുമായി മാത്രം പൊരുത്തപ്പെടുന്നുവെന്നതും യൂണികോഡ് പ്രതീകങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കാൻ വിപുലീകരിക്കപ്പെട്ടിട്ടില്ലെന്നതും ശ്രദ്ധിക്കുക. നിങ്ങൾക്ക് നിങ്ങളുടെ സ്വന്തം യൂണിക്കോഡ് പ്രതീക ക്ലാസുകൾ വ്യക്തമായി നിർവചിക്കാം, ഉദാഹരണത്തിന് /[\u0400-\u04FF]/ ഏത് പ്രതീക സിറിലിക് അക്ഷരമാലയുമായി പൊരുത്തപ്പെടുന്നു .)

JavaScript റെഗുലർ എക്സ്പ്രഷൻ ക്യാരക്ടർ ക്ലാസുകൾ ചിഹ്ന കറസ്‌പോണ്ടൻസ്
[...] പരാൻതീസിസിൽ കാണിച്ചിരിക്കുന്ന ഏതെങ്കിലും പ്രതീകങ്ങൾ
[^...] പരാൻതീസിസിൽ പട്ടികപ്പെടുത്തിയിട്ടില്ലാത്ത ഏതെങ്കിലും പ്രതീകങ്ങൾ
. ഒരു ന്യൂലൈൻ അല്ലെങ്കിൽ മറ്റ് യൂണികോഡ് ലൈൻ ഡിലിമിറ്റർ ഒഴികെയുള്ള ഏത് പ്രതീകവും
\w ഏതെങ്കിലും ASCII ടെക്സ്റ്റ് പ്രതീകം. തത്തുല്യം
\W ASCII വാചക പ്രതീകമല്ലാത്ത ഏത് പ്രതീകവും. [^a-zA-Z0-9_] എന്നതിന് തുല്യമാണ്
\s യൂണികോഡ് സെറ്റിൽ നിന്നുള്ള ഏതെങ്കിലും വൈറ്റ്‌സ്‌പേസ് പ്രതീകം
\S യൂണികോഡ് സെറ്റിൽ നിന്നുള്ള ഏതെങ്കിലും നോൺ-വൈറ്റ്സ്പേസ് പ്രതീകം. \w, \S എന്നീ പ്രതീകങ്ങൾ ഒന്നല്ല എന്നത് ശ്രദ്ധിക്കുക
\d ഏതെങ്കിലും ASCII നമ്പറുകൾ. തത്തുല്യം
\D ASCII നമ്പറുകൾ ഒഴികെയുള്ള ഏത് പ്രതീകവും. തുല്യം [^0-9]
[\b] ബാക്ക്‌സ്‌പേസ് പ്രതീകം അക്ഷരാർത്ഥത്തിൽ

ക്ലാസ് സ്‌പെഷ്യൽ ക്യാരക്ടർ എസ്‌കേപ്പ് സീക്വൻസുകൾ സ്‌ക്വയർ ബ്രാക്കറ്റുകളിൽ ഉൾപ്പെടുത്താമെന്നത് ശ്രദ്ധിക്കുക. \s ഏതെങ്കിലും വൈറ്റ്‌സ്‌പെയ്‌സ് പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു കൂടാതെ \d ഏത് അക്കവുമായും പൊരുത്തപ്പെടുന്നു, അതിനാൽ /[\s\d]/ ഏത് വൈറ്റ്‌സ്‌പെയ്‌സ് പ്രതീകവുമായോ അക്കവുമായോ പൊരുത്തപ്പെടുന്നു.

ആവർത്തനം

റെഗുലർ എക്‌സ്‌പ്രഷൻ സിന്റക്‌സിന്റെ ഇതുവരെയുള്ള അറിവ് കണക്കിലെടുക്കുമ്പോൾ, നമുക്ക് രണ്ടക്ക സംഖ്യയെ /\d\d/ അല്ലെങ്കിൽ നാലക്ക സംഖ്യയെ /\d\d\d\d/ എന്ന് വിവരിക്കാം, പക്ഷേ നമുക്ക് കഴിയില്ല, ഉദാഹരണത്തിന് , ഏതെങ്കിലും അക്കങ്ങൾ അടങ്ങിയ ഒരു സംഖ്യ, അല്ലെങ്കിൽ മൂന്ന് അക്ഷരങ്ങളുടെ ഒരു സ്ട്രിംഗ്, തുടർന്ന് ഒരു ഓപ്ഷണൽ അക്കം എന്നിവ വിവരിക്കുക. കൂടുതൽ സങ്കീർണ്ണമായ ഈ പാറ്റേണുകൾ എത്ര തവണ എന്ന് വ്യക്തമാക്കുന്നതിന് റെഗുലർ എക്സ്പ്രഷൻ സിന്റാക്സ് ഉപയോഗിക്കുന്നു ഈ ഘടകംപതിവ് ആവിഷ്കാരം.

ആവർത്തിച്ചുള്ള ചിഹ്നങ്ങൾ എല്ലായ്പ്പോഴും അവ പ്രയോഗിക്കുന്ന പാറ്റേൺ പിന്തുടരുന്നു. ചില തരത്തിലുള്ള ആവർത്തനങ്ങൾ പലപ്പോഴും ഉപയോഗിക്കാറുണ്ട്, ഈ കേസുകൾ സൂചിപ്പിക്കാൻ പ്രത്യേക ചിഹ്നങ്ങൾ ലഭ്യമാണ്. ഉദാഹരണത്തിന്, + മുമ്പത്തെ പാറ്റേണിന്റെ ഒന്നോ അതിലധികമോ സന്ദർഭങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. ഇനിപ്പറയുന്ന പട്ടിക ആവർത്തന വാക്യഘടനയുടെ ഒരു സംഗ്രഹം നൽകുന്നു:

ഇനിപ്പറയുന്ന വരികൾ നിരവധി ഉദാഹരണങ്ങൾ കാണിക്കുന്നു:

Var പാറ്റേൺ = /\d(2,4)/; // രണ്ടോ നാലോ അക്ക പാറ്റേൺ അടങ്ങിയിരിക്കുന്ന ഒരു സംഖ്യയുമായി പൊരുത്തപ്പെടുന്നു = /\w(3)\d?/; // കൃത്യമായി മൂന്ന് പദ പ്രതീകങ്ങളും ഒരു ഓപ്ഷണൽ അക്ക പാറ്റേണും പൊരുത്തപ്പെടുത്തുക = /\s+java\s+/; // "java" എന്ന വാക്ക് ഒന്നോ അതിലധികമോ സ്‌പെയ്‌സുകളുമായി പൊരുത്തപ്പെടുന്നു // അതിന് മുമ്പും ശേഷവും പാറ്റേൺ = /[^(]*/; // ഓപ്പണിംഗ് പരാൻതീസിസ് ഒഴികെയുള്ള പൂജ്യമോ അതിലധികമോ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു

ആവർത്തന പ്രതീകങ്ങൾ ഉപയോഗിക്കുമ്പോൾ ശ്രദ്ധിക്കുക * ഒപ്പം ?. അവയ്‌ക്ക് മുമ്പ് വ്യക്തമാക്കിയ പാറ്റേണിന്റെ അഭാവവും അതിനാൽ പ്രതീകങ്ങളുടെ അഭാവവും പൊരുത്തപ്പെടുത്താനാകും. ഉദാഹരണത്തിന്, /a*/ എന്ന പതിവ് പദപ്രയോഗം "bbbb" എന്ന സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു, കാരണം അതിൽ a എന്ന അക്ഷരം അടങ്ങിയിട്ടില്ല.

പട്ടികയിൽ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ആവർത്തന പ്രതീകങ്ങൾ, റെഗുലർ എക്‌സ്‌പ്രഷനിലെ തുടർന്നുള്ള ഭാഗങ്ങൾ പൊരുത്തപ്പെടുത്താൻ അനുവദിക്കുന്ന പരമാവധി ആവർത്തനങ്ങളെ പ്രതിനിധീകരിക്കുന്നു. ഇത് അത്യാഗ്രഹമായ ആവർത്തനമാണെന്ന് ഞങ്ങൾ പറയുന്നു. അത്യാഗ്രഹമില്ലാത്ത രീതിയിൽ നടത്തുന്ന ആവർത്തനം നടപ്പിലാക്കാനും സാധിക്കും. ആവർത്തന ചിഹ്നത്തിന് (അല്ലെങ്കിൽ ചിഹ്നങ്ങൾ) ശേഷം ഒരു ചോദ്യചിഹ്നം സൂചിപ്പിച്ചാൽ മതി: ??, +?, *? അല്ലെങ്കിൽ (1.5) പോലും?.

ഉദാഹരണത്തിന്, /a+/ എന്ന പതിവ് പദപ്രയോഗം a എന്ന അക്ഷരത്തിന്റെ ഒന്നോ അതിലധികമോ സന്ദർഭങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. "aaa" എന്ന സ്ട്രിംഗിൽ പ്രയോഗിച്ചാൽ, അത് മൂന്ന് അക്ഷരങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. മറുവശത്ത്, /a+?/ എന്ന പദപ്രയോഗം a എന്ന അക്ഷരത്തിന്റെ ഒന്നോ അതിലധികമോ സന്ദർഭങ്ങളുമായി പൊരുത്തപ്പെടുകയും സാധ്യമായ ഏറ്റവും ചെറിയ പ്രതീകങ്ങൾ തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു. ഒരേ സ്‌ട്രിംഗിൽ പ്രയോഗിച്ചാൽ, ഈ പാറ്റേൺ ആദ്യ അക്ഷരമായ എയുമായി മാത്രം പൊരുത്തപ്പെടുന്നു.

"അത്യാഗ്രഹമില്ലാത്ത" ആവർത്തനം എല്ലായ്പ്പോഴും പ്രതീക്ഷിച്ച ഫലം നൽകുന്നില്ല. ഒന്നോ അതിലധികമോ a-കളും ഒരു b-യും തമ്മിൽ പൊരുത്തപ്പെടുന്ന പാറ്റേൺ /a+b/ പരിഗണിക്കുക. "aaab" എന്ന സ്ട്രിംഗിൽ പ്രയോഗിക്കുമ്പോൾ, അത് മുഴുവൻ സ്ട്രിംഗുമായി യോജിക്കുന്നു.

ഇനി നമുക്ക് /a+?b/ ന്റെ "അത്യാഗ്രഹമില്ലാത്ത" പതിപ്പ് പരിശോധിക്കാം. ഇത് ഒരു b എന്നതിന് മുമ്പുള്ള ഒരു a യുടെ മുമ്പിൽ പൊരുത്തപ്പെടുമെന്ന് ഒരാൾ ചിന്തിച്ചേക്കാം. ഒരേ സ്‌ട്രിംഗിൽ പ്രയോഗിച്ചാൽ, "aaab" എന്ന ഒറ്റ പ്രതീകം a, അവസാന പ്രതീകം b എന്നിവയുമായി പൊരുത്തപ്പെടുമെന്ന് പ്രതീക്ഷിക്കുന്നു. എന്നിരുന്നാലും, ഈ പാറ്റേൺ യഥാർത്ഥത്തിൽ അത്യാഗ്രഹ പതിപ്പ് പോലെ മുഴുവൻ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു. ഒരു പൊരുത്തം സാധ്യമാകുന്ന സ്ട്രിംഗിലെ ആദ്യ സ്ഥാനം കണ്ടെത്തി ഒരു സാധാരണ എക്സ്പ്രഷൻ പാറ്റേൺ തിരയൽ നടത്തുന്നു എന്നതാണ് വസ്തുത. സ്ട്രിംഗിന്റെ ആദ്യ പ്രതീകത്തിൽ നിന്ന് ഒരു പൊരുത്തം സാധ്യമായതിനാൽ, തുടർന്നുള്ള പ്രതീകങ്ങളിൽ നിന്ന് ആരംഭിക്കുന്ന ചെറിയ പൊരുത്തങ്ങൾ പോലും പരിഗണിക്കില്ല.

ഇതരമാർഗങ്ങൾ, ഗ്രൂപ്പിംഗ്, ലിങ്കുകൾ

റെഗുലർ എക്‌സ്‌പ്രഷൻ വ്യാകരണത്തിൽ ഇതരമാർഗങ്ങൾ നിർവചിക്കുന്നതിനും സബ്‌എക്‌സ്‌പ്രഷനുകൾ ഗ്രൂപ്പുചെയ്യുന്നതിനും മുമ്പത്തെ ഉപവിഷ്‌കാരങ്ങളിലേക്കുള്ള റഫറൻസുകൾക്കുമുള്ള പ്രത്യേക പ്രതീകങ്ങൾ ഉൾപ്പെടുന്നു. പൈപ്പ് ചിഹ്നം | ഇതരമാർഗങ്ങൾ വേർതിരിക്കാൻ സഹായിക്കുന്നു. ഉദാഹരണത്തിന്, /ab|cd|ef/ ഒന്നുകിൽ "ab" സ്ട്രിംഗ്, അല്ലെങ്കിൽ "cd", അല്ലെങ്കിൽ string "ef" എന്നിവയുമായി പൊരുത്തപ്പെടുന്നു, കൂടാതെ /\d(3)|(4)/ പാറ്റേൺ ഒന്നുകിൽ മൂന്ന് അക്കങ്ങളുമായി പൊരുത്തപ്പെടുന്നു അല്ലെങ്കിൽ നാല് ചെറിയ അക്ഷരങ്ങൾ.

ഒരു പൊരുത്തം കണ്ടെത്തുന്നത് വരെ ഇതരമാർഗങ്ങൾ ഇടത്തുനിന്ന് വലത്തോട്ട് പ്രോസസ്സ് ചെയ്യപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക. ഇടത് ബദലുമായി ഒരു പൊരുത്തം കണ്ടെത്തിയാൽ, "മികച്ച" പൊരുത്തം നേടാൻ കഴിയുമെങ്കിലും, ശരിയായത് അവഗണിക്കപ്പെടും. അതിനാൽ, "ab" എന്ന സ്ട്രിംഗിൽ പാറ്റേൺ /a|ab/ പ്രയോഗിക്കുമ്പോൾ, അത് ആദ്യ പ്രതീകവുമായി മാത്രമേ പൊരുത്തപ്പെടൂ.

പതിവ് പദപ്രയോഗങ്ങളിൽ പരാൻതീസിസിന് ഒന്നിലധികം അർത്ഥങ്ങളുണ്ട്. അതിലൊന്നാണ് ഗ്രൂപ്പിംഗ് വ്യക്തിഗത ഘടകങ്ങൾഒരു ഉപവിഷ്ക്കാരത്തിലേക്ക്, അങ്ങനെ പ്രത്യേക പ്രതീകങ്ങൾ ഉപയോഗിക്കുമ്പോൾ മൂലകങ്ങൾ |, *, +, ? മറ്റുള്ളവരെ ഒന്നായി കണക്കാക്കുന്നു. ഉദാഹരണത്തിന്, /java(script)?/ എന്ന പാറ്റേൺ "java" എന്ന വാക്കുമായി പൊരുത്തപ്പെടുന്നു, തുടർന്ന് "script" എന്ന ഓപ്ഷണൽ പദവും /(ab|cd)+|ef)/ "ef" അല്ലെങ്കിൽ ഒന്നോ അതിലധികമോ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു. "ab" അല്ലെങ്കിൽ "cd" സ്ട്രിംഗുകളിൽ നിന്ന് ഒന്നിന്റെ ആവർത്തനങ്ങൾ.

ഒരു പാറ്റേണിനുള്ളിൽ ഉപപാറ്റേണുകൾ നിർവചിക്കുക എന്നതാണ് പതിവ് എക്സ്പ്രഷനുകളിലെ പരാൻതീസിസിന്റെ മറ്റൊരു ഉപയോഗം. ടാർഗെറ്റ് സ്‌ട്രിംഗിൽ ഒരു റെഗുലർ എക്‌സ്‌പ്രഷൻ പൊരുത്തം കണ്ടെത്തുമ്പോൾ, പരാൻതീസിസിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഏതെങ്കിലും പ്രത്യേക ഉപപാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന ടാർഗെറ്റ് സ്‌ട്രിംഗിന്റെ ഭാഗം എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യാനാകും.

ഒന്നോ അതിലധികമോ ചെറിയക്ഷരങ്ങൾ തുടർന്ന് ഒന്നോ അതിലധികമോ അക്കങ്ങൾ കണ്ടെത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് /+\d+/ ടെംപ്ലേറ്റ് ഉപയോഗിക്കാം. എന്നാൽ ഓരോ മത്സരത്തിന്റെയും അവസാനം അക്കങ്ങൾ മാത്രമേ നമുക്ക് ആവശ്യമുള്ളൂ എന്നും കരുതുക. പാറ്റേണിന്റെ ഈ ഭാഗം പരാൻതീസിസിൽ (/+(\d+)/) ഇടുകയാണെങ്കിൽ, നമ്മൾ കണ്ടെത്തുന്ന ഏത് പൊരുത്തങ്ങളിൽ നിന്നും നമുക്ക് അക്കങ്ങൾ എക്‌സ്‌ട്രാക്‌റ്റ് ചെയ്യാം. ഇത് എങ്ങനെ ചെയ്യാമെന്ന് ചുവടെ വിവരിക്കും.

അതേ റെഗുലർ എക്‌സ്‌പ്രഷനിലെ മുൻ ഭാഗത്തിൽ നിന്നുള്ള ഉപവിഷ്‌കാരങ്ങളെ പരാമർശിക്കുന്നതാണ് പരാൻതെറ്റിക്കൽ സബ്‌എക്‌സ്‌പ്രഷനുകളുടെ അനുബന്ധ ഉപയോഗം. \ പ്രതീകത്തിന് ശേഷം ഒന്നോ അതിലധികമോ അക്കങ്ങൾ വ്യക്തമാക്കുന്നതിലൂടെ ഇത് നേടാനാകും. സാധാരണ പദപ്രയോഗത്തിനുള്ളിലെ പരാൻതീസൈസ് ചെയ്ത ഉപവിഷ്കാരത്തിന്റെ സ്ഥാനത്തെയാണ് അക്കങ്ങൾ സൂചിപ്പിക്കുന്നത്. ഉദാഹരണത്തിന്, \1 എന്നത് ആദ്യത്തെ ഉപവിവരണത്തെയും \3 മൂന്നാമത്തേതിനെയും സൂചിപ്പിക്കുന്നു. സബ്‌എക്‌സ്‌പ്രഷനുകൾ പരസ്പരം നെസ്റ്റ് ചെയ്യാമെന്നത് ശ്രദ്ധിക്കുക, അതിനാൽ ഇടത് പരാന്തീസിസിന്റെ സ്ഥാനം എണ്ണുമ്പോൾ ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന പതിവ് എക്‌സ്‌പ്രഷനിൽ, ഒരു നെസ്റ്റഡ് സബ്‌എക്‌സ്‌പ്രഷൻ (ക്രിപ്റ്റ്) റഫറൻസ് \2 ഇതുപോലെ കാണപ്പെടും:

/(ava(cript)?)\sis\s(തമാശ\w*)/

മുമ്പത്തെ ഒരു സബ്‌എക്‌സ്‌പ്രഷനിലേക്കുള്ള ഒരു റഫറൻസ് ആ ഉപവിഷ്‌കാരത്തിന്റെ പാറ്റേണിലേക്കല്ല, ആ പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന ടെക്‌സ്‌റ്റിലേക്കാണ് വിരൽ ചൂണ്ടുന്നത്. അതിനാൽ, ഒരേ പ്രതീകങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു സ്ട്രിംഗിന്റെ ഭാഗങ്ങൾ തിരഞ്ഞെടുക്കുന്ന ഒരു നിയന്ത്രണം ഏർപ്പെടുത്താൻ റഫറൻസുകൾ ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന റെഗുലർ എക്‌സ്‌പ്രഷൻ ഒറ്റ അല്ലെങ്കിൽ ഉള്ളിലെ പൂജ്യമോ അതിലധികമോ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു ഇരട്ട ഉദ്ധരണികൾ. എന്നിരുന്നാലും, ഓപ്പണിംഗ്, ക്ലോസിംഗ് ഉദ്ധരണികൾ പരസ്പരം പൊരുത്തപ്പെടണമെന്ന് ഇതിന് ആവശ്യമില്ല (അതായത്, രണ്ട് ഉദ്ധരണികളും ഒറ്റയോ ഇരട്ടയോ ആയിരിക്കും):

/[""][^""]*[""]/

ഇതുപോലുള്ള ഒരു റഫറൻസ് ഉപയോഗിച്ച് നമുക്ക് ഉദ്ധരണി ചിഹ്നങ്ങൾ പൊരുത്തപ്പെടുത്താൻ ആവശ്യപ്പെടാം:

ഇവിടെ \1 ആദ്യത്തെ സബ് എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്നു. ഈ ഉദാഹരണത്തിൽ, തുറക്കുന്ന ഉദ്ധരണി ചിഹ്നവുമായി പൊരുത്തപ്പെടുന്നതിന് ക്ലോസിംഗ് ഉദ്ധരണി ചിഹ്നം ആവശ്യമുള്ള ഒരു നിയന്ത്രണം ലിങ്ക് ചുമത്തുന്നു. ഈ പതിവ് പദപ്രയോഗം ഇരട്ട ഉദ്ധരണികൾക്കുള്ളിൽ ഒറ്റ ഉദ്ധരണികൾ അനുവദിക്കുന്നില്ല, തിരിച്ചും.

ആ ഘടകങ്ങൾക്ക് ഒരു അക്കമിട്ട റഫറൻസ് സൃഷ്ടിക്കാതെ, ഒരു സാധാരണ പദപ്രയോഗത്തിൽ ഘടകങ്ങൾ ഗ്രൂപ്പുചെയ്യാനും സാധ്യമാണ്. (ഉം ) നും ഇടയിലുള്ള ഘടകങ്ങൾ ഗ്രൂപ്പുചെയ്യുന്നതിന് പകരം, ചിഹ്നങ്ങൾ ഉപയോഗിച്ച് ഗ്രൂപ്പ് ആരംഭിക്കുക (?: ഒരു ചിഹ്നത്തിൽ അവസാനിപ്പിക്കുക). ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന പാറ്റേൺ പരിഗണിക്കുക:

/(ava(?:cript)?)\sis\s(തമാശ\w*)/

ഇവിടെ സബ്‌എക്‌സ്‌പ്രഷൻ (?:cript) ഗ്രൂപ്പിംഗിന് മാത്രമേ ആവശ്യമുള്ളൂ, അങ്ങനെ ആവർത്തന പ്രതീകം ഗ്രൂപ്പിൽ പ്രയോഗിക്കാൻ കഴിയും. ഈ പരിഷ്‌ക്കരിച്ച പരാൻതീസിസുകൾ ഒരു ലിങ്ക് സൃഷ്‌ടിക്കുന്നില്ല, അതിനാൽ ഈ പതിവ് എക്‌സ്‌പ്രഷനിൽ, \2 പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന ടെക്‌സ്‌റ്റിനെ സൂചിപ്പിക്കുന്നു (രസകരമായ\w*).

ഇനിപ്പറയുന്ന പട്ടിക സാധാരണ എക്‌സ്‌പ്രഷനുകളിൽ തിരഞ്ഞെടുക്കൽ, ഗ്രൂപ്പിംഗ്, റഫറൻസ് ഓപ്പറേറ്റർമാരെ പട്ടികപ്പെടുത്തുന്നു:

ഇതരമാർഗങ്ങളിൽ നിന്ന് തിരഞ്ഞെടുക്കുന്നതിനുള്ള പതിവ് എക്സ്പ്രഷൻ ചിഹ്നങ്ങൾ, ഗ്രൂപ്പിംഗ്, കൂടാതെ JavaScript ലിങ്കുകൾചിഹ്നത്തിന്റെ അർത്ഥം
| ബദൽ. ഒന്നുകിൽ ഇടതുവശത്തുള്ള സബ്‌എക്‌സ്‌പ്രഷനുമായോ വലതുവശത്തുള്ള സബ്‌എക്‌സ്‌പ്രഷനുമായോ പൊരുത്തപ്പെടുന്നു.
(...) ഗ്രൂപ്പിംഗ്. *, +, ?, | പ്രതീകങ്ങൾക്കൊപ്പം ഉപയോഗിക്കാവുന്ന ഒരൊറ്റ യൂണിറ്റായി ഘടകങ്ങളെ ഗ്രൂപ്പുചെയ്യുന്നു ഇത്യാദി. തുടർന്നുള്ള റഫറൻസുകളിൽ ഉപയോഗിക്കുന്നതിനായി ഈ ഗ്രൂപ്പുമായി പൊരുത്തപ്പെടുന്ന പ്രതീകങ്ങളും ഓർക്കുന്നു.
(?:...) ഗ്രൂപ്പിംഗ് മാത്രം. ഘടകങ്ങളെ ഒരൊറ്റ യൂണിറ്റായി ഗ്രൂപ്പുചെയ്യുന്നു, എന്നാൽ ഈ ഗ്രൂപ്പുമായി ബന്ധപ്പെട്ട പ്രതീകങ്ങൾ ഓർക്കുന്നില്ല.
\സംഖ്യ ഗ്രൂപ്പ് നമ്പർ നമ്പർ പൊരുത്തപ്പെടുത്തുമ്പോൾ കണ്ടെത്തിയ അതേ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. ഗ്രൂപ്പുകൾ പരാൻതീസിസിനുള്ളിലെ (ഒരുപക്ഷേ നെസ്റ്റഡ്) ഉപവിഷ്കാരങ്ങളാണ്. ഇടത് പരാൻതീസിസുകൾ ഇടത്തുനിന്ന് വലത്തോട്ട് എണ്ണിയാണ് ഗ്രൂപ്പ് നമ്പറുകൾ നൽകുന്നത്. ചിഹ്നങ്ങൾ (?:) ഉപയോഗിച്ച് രൂപീകരിച്ച ഗ്രൂപ്പുകൾ അക്കമിട്ടിട്ടില്ല.
ഒരു മാച്ച് പൊസിഷൻ വ്യക്തമാക്കുന്നു

നേരത്തെ വിവരിച്ചതുപോലെ, ഒരു സാധാരണ പദപ്രയോഗത്തിന്റെ പല ഘടകങ്ങളും ഒരു സ്ട്രിംഗിലെ ഒരു പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. ഉദാഹരണത്തിന്, \s ഒരു വൈറ്റ്‌സ്‌പെയ്‌സ് പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു. മറ്റ് പതിവ് എക്‌സ്‌പ്രഷൻ ഘടകങ്ങൾ കഥാപാത്രങ്ങളേക്കാൾ പ്രതീകങ്ങൾക്കിടയിലുള്ള സ്ഥാനങ്ങളുമായി പൊരുത്തപ്പെടുന്നു. ഉദാഹരണത്തിന്, \b ഒരു പദ അതിർത്തിയുമായി പൊരുത്തപ്പെടുന്നു - \w (ഒരു ASCII ടെക്സ്റ്റ് പ്രതീകം), \W (ഒരു നോൺ-ടെക്സ്റ്റ് പ്രതീകം), അല്ലെങ്കിൽ ഒരു ASCII ടെക്സ്റ്റ് പ്രതീകവും ഒരു വരിയുടെ തുടക്കമോ അവസാനമോ തമ്മിലുള്ള അതിർത്തി.

\b പോലുള്ള ഘടകങ്ങൾ പൊരുത്തപ്പെടുന്ന സ്‌ട്രിംഗിൽ ഉണ്ടായിരിക്കേണ്ട പ്രതീകങ്ങളൊന്നും വ്യക്തമാക്കുന്നില്ല, എന്നാൽ അവ പൊരുത്തപ്പെടുത്തുന്നതിന് സാധുവായ സ്ഥാനങ്ങൾ വ്യക്തമാക്കുന്നു. ഈ ഘടകങ്ങളെ ചിലപ്പോൾ റെഗുലർ എക്സ്പ്രഷൻ ആങ്കർ ഘടകങ്ങൾ എന്ന് വിളിക്കുന്നു, കാരണം അവ സ്ട്രിംഗിലെ ഒരു പ്രത്യേക സ്ഥാനത്തേക്ക് പാറ്റേൺ ആങ്കർ ചെയ്യുന്നു. ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന ആങ്കർ ഘടകങ്ങൾ ^, $ എന്നിവയാണ്, അവ യഥാക്രമം ഒരു വരിയുടെ തുടക്കത്തിലേക്കും അവസാനത്തിലേക്കും പാറ്റേണുകളെ ബന്ധിപ്പിക്കുന്നു.

ഉദാഹരണത്തിന്, "JavaScript" എന്ന വാക്ക് അതിന്റെ സ്വന്തം വരിയിൽ /^JavaScript$/ എന്ന പതിവ് പദപ്രയോഗം ഉപയോഗിച്ച് കണ്ടെത്താം. "Java" എന്ന ഒറ്റ വാക്ക് കണ്ടെത്താൻ ("JavaScript" പോലെയുള്ള ഒരു പ്രിഫിക്‌സിന് പകരം), നിങ്ങൾക്ക് /\sJava\s/ എന്ന പാറ്റേൺ ഉപയോഗിച്ച് ശ്രമിക്കാവുന്നതാണ്, അതിന് വാക്കിന് മുമ്പും ശേഷവും ഒരു സ്പേസ് ആവശ്യമാണ്.

എന്നാൽ അത്തരമൊരു പരിഹാരം രണ്ട് പ്രശ്നങ്ങൾ ഉയർത്തുന്നു. ആദ്യം, "ജാവ" എന്ന വാക്ക് ഇരുവശത്തും ഇടങ്ങളാൽ ചുറ്റപ്പെട്ടാൽ മാത്രമേ അത് കണ്ടെത്തുകയുള്ളൂ, കൂടാതെ വരിയുടെ തുടക്കത്തിലോ അവസാനത്തിലോ അത് കണ്ടെത്താൻ കഴിയില്ല. രണ്ടാമതായി, ഈ പാറ്റേൺ പൊരുത്തപ്പെടുമ്പോൾ, അത് തിരികെ നൽകുന്ന സ്‌ട്രിംഗിൽ ലീഡിംഗ്, ട്രെയിലിംഗ് സ്‌പെയ്‌സുകൾ അടങ്ങിയിരിക്കും, അത് നമുക്ക് വേണ്ടത് കൃത്യമായി അല്ല. അതിനാൽ വൈറ്റ്‌സ്‌പേസ് പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്ന ഒരു പാറ്റേൺ ഉപയോഗിക്കുന്നതിന് പകരം \b, വാക്കുകളുടെ അതിരുകളുമായി പൊരുത്തപ്പെടുന്ന ഒരു പാറ്റേൺ (അല്ലെങ്കിൽ ആങ്കർ) ഞങ്ങൾ ഉപയോഗിക്കും. ഫലം ഇനിപ്പറയുന്ന എക്സ്പ്രഷൻ ആയിരിക്കും: /\bJava\b/.

ആങ്കർ ഘടകം \B ഒരു പദത്തിന്റെ അതിരുകളല്ലാത്ത ഒരു സ്ഥാനവുമായി പൊരുത്തപ്പെടുന്നു. അതായത്, പാറ്റേൺ /\Bcript/ "JavaScript", "postscript" എന്നീ വാക്കുകളുമായി പൊരുത്തപ്പെടും കൂടാതെ "script" അല്ലെങ്കിൽ "Scripting" എന്നീ വാക്കുകളുമായി പൊരുത്തപ്പെടില്ല.

അനിയന്ത്രിതമായ പതിവ് പദപ്രയോഗങ്ങൾ ആങ്കർ വ്യവസ്ഥകളായി വർത്തിക്കും. നിങ്ങൾ പ്രതീകങ്ങൾക്കിടയിൽ (?= ഒപ്പം) ഒരു എക്സ്പ്രഷൻ സ്ഥാപിക്കുകയാണെങ്കിൽ, അത് തുടർന്നുള്ള പ്രതീകങ്ങൾക്കെതിരായ ഒരു ഫോർവേഡ് മാച്ച് ടെസ്റ്റായി മാറുന്നു, ആ പ്രതീകങ്ങൾ നിർദ്ദിഷ്ട പാറ്റേണുമായി പൊരുത്തപ്പെടണം, പക്ഷേ മാച്ച് സ്‌ട്രിംഗിൽ ഉൾപ്പെടുത്തരുത്.

ഉദാഹരണത്തിന്, ഒരു സാധാരണ പ്രോഗ്രാമിംഗ് ഭാഷയുടെ പേരിന് ശേഷം കോളണുമായി പൊരുത്തപ്പെടുന്നതിന്, നിങ്ങൾക്ക് /ava(cript)?(?=\:)/ എന്ന പദപ്രയോഗം ഉപയോഗിക്കാം. ഈ പാറ്റേൺ "JavaScript: The Definitive Guide" എന്ന സ്ട്രിംഗിലെ "JavaScript" എന്ന വാക്കുമായി പൊരുത്തപ്പെടുന്നു, എന്നാൽ ഒരു കോളൻ പിന്തുടരാത്തതിനാൽ "Java in a Nutshell" എന്ന സ്ട്രിംഗിലെ "Java" എന്ന പദവുമായി ഇത് പൊരുത്തപ്പെടില്ല.

നിങ്ങൾ വ്യവസ്ഥ (?!) നൽകുകയാണെങ്കിൽ, ഇത് തുടർന്നുള്ള പ്രതീകങ്ങൾക്കുള്ള നെഗറ്റീവ് ഫോർവേഡ് ചെക്ക് ആയിരിക്കും, ഇനിപ്പറയുന്ന പ്രതീകങ്ങൾ നിർദ്ദിഷ്ട പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നില്ല. ഉദാഹരണത്തിന്, പാറ്റേൺ /Java(?!Script)(\w* )/ "Java" എന്ന ഉപസ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു, തുടർന്ന് ഒരു വലിയ അക്ഷരവും ഏതെങ്കിലും ASCII ടെക്‌സ്‌റ്റ് പ്രതീകങ്ങളും, "Java" എന്ന സബ്‌സ്‌ട്രിംഗിനെ പിന്തുടരുന്ന "സ്‌ക്രിപ്റ്റ്" എന്ന ഉപസ്‌ട്രിംഗും അത് "JavaBeans" എന്ന സ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നില്ലെങ്കിലും സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നില്ല. "ജാവാനീസ്" "JavaScrip" " എന്ന സ്ട്രിംഗുമായി പൊരുത്തപ്പെടും, എന്നാൽ "JavaScript" അല്ലെങ്കിൽ "JavaScripter" എന്ന സ്ട്രിംഗുകളുമായി പൊരുത്തപ്പെടില്ല.

ചുവടെയുള്ള പട്ടിക സാധാരണ എക്സ്പ്രഷൻ ആങ്കർ പ്രതീകങ്ങളുടെ ഒരു ലിസ്റ്റ് നൽകുന്നു:

റെഗുലർ എക്സ്പ്രഷൻ ആങ്കർ പ്രതീകങ്ങൾ ചിഹ്നത്തിന്റെ അർത്ഥം
^ ഒരു സ്ട്രിംഗ് എക്‌സ്‌പ്രെഷന്റെ തുടക്കവുമായോ ഒരു മൾട്ടിലൈൻ തിരയലിൽ ഒരു വരിയുടെ തുടക്കവുമായോ പൊരുത്തപ്പെടുന്നു.
$ ഒരു സ്ട്രിംഗ് എക്‌സ്‌പ്രഷന്റെ അവസാനം അല്ലെങ്കിൽ ഒരു മൾട്ടിലൈൻ തിരയലിൽ ഒരു വരിയുടെ അവസാനവുമായി പൊരുത്തപ്പെടുന്നു.
\b ഒരു പദത്തിന്റെ അതിർത്തിയുമായി പൊരുത്തപ്പെടുന്നു, അതായത്. ഒരു \w പ്രതീകത്തിനും \W പ്രതീകത്തിനും ഇടയിലോ \w പ്രതീകത്തിനും ഒരു വരിയുടെ ആരംഭത്തിനും അവസാനത്തിനും ഇടയിലുള്ള സ്ഥാനവുമായി പൊരുത്തപ്പെടുന്നു. (എന്നിരുന്നാലും, [\b] ബാക്ക്‌സ്‌പേസ് പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു എന്നത് ശ്രദ്ധിക്കുക.)
\B പദത്തിന്റെ അതിരുകളല്ലാത്ത ഒരു സ്ഥാനവുമായി പൊരുത്തപ്പെടുന്നു.
(?=പി) തുടർന്നുള്ള പ്രതീകങ്ങൾക്കായി പോസിറ്റീവ് ലുക്ക്ഹെഡ് പരിശോധന. പി പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നതിന് തുടർന്നുള്ള പ്രതീകങ്ങൾ ആവശ്യമാണ്, എന്നാൽ പൊരുത്തപ്പെടുന്ന സ്‌ട്രിംഗിൽ ആ പ്രതീകങ്ങൾ ഉൾപ്പെടുന്നില്ല.
(?!p) തുടർന്നുള്ള പ്രതീകങ്ങൾക്കായി നെഗറ്റീവ് ഫോർവേഡ് ചെക്ക്. ഇനിപ്പറയുന്ന പ്രതീകങ്ങൾ പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നില്ല എന്നത് ആവശ്യമാണ് p.
പതാകകൾ

കൂടാതെ റെഗുലർ എക്സ്പ്രഷൻ വ്യാകരണത്തിന്റെ അവസാന ഘടകവും. റെഗുലർ എക്സ്പ്രഷൻ ഫ്ലാഗുകൾ ഉയർന്ന തലത്തിലുള്ള പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ നിയമങ്ങൾ വ്യക്തമാക്കുന്നു. സാധാരണ എക്‌സ്‌പ്രഷൻ വ്യാകരണത്തിൽ നിന്ന് വ്യത്യസ്തമായി, സ്ലാഷ് പ്രതീകങ്ങൾക്കിടയിലല്ല, രണ്ടാമത്തേതിന് ശേഷമായിരിക്കും ഫ്ലാഗുകൾ വ്യക്തമാക്കുന്നത്. ജാവാസ്ക്രിപ്റ്റ് മൂന്ന് ഫ്ലാഗുകളെ പിന്തുണയ്ക്കുന്നു.

പതാക ഐപാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ കേസ് സെൻസിറ്റീവ് ആയിരിക്കണമെന്ന് വ്യക്തമാക്കുന്നു, കൂടാതെ പതാക ജി- തിരയൽ ആഗോളമായിരിക്കണം, അതായത്. സ്ട്രിംഗിലെ എല്ലാ പൊരുത്തങ്ങളും കണ്ടെത്തണം. പതാക എംമൾട്ടി-ലൈൻ മോഡിൽ ഒരു പാറ്റേൺ തിരയൽ നടത്തുന്നു. തിരയുന്ന സ്‌ട്രിംഗ് എക്‌സ്‌പ്രഷനിൽ പുതിയ ലൈനുകൾ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, ഈ മോഡിൽ ആങ്കർ പ്രതീകങ്ങൾ ^, $ എന്നിവ, മുഴുവൻ സ്‌ട്രിംഗ് എക്‌സ്‌പ്രഷനിന്റെയും തുടക്കവും അവസാനവും പൊരുത്തപ്പെടുത്തുന്നതിന് പുറമേ, ഓരോന്നിന്റെയും തുടക്കവും അവസാനവും പൊരുത്തപ്പെടുത്തുന്നു. ടെക്സ്റ്റ് സ്ട്രിംഗ്. ഉദാഹരണത്തിന്, പാറ്റേൺ /java$/im "java", "Java\nis fun" എന്നിവയുമായി പൊരുത്തപ്പെടുന്നു.

ഈ പതാകകൾ ഏത് കോമ്പിനേഷനിലും സംയോജിപ്പിക്കാം. ഉദാഹരണത്തിന്, "java" (അല്ലെങ്കിൽ "Java", "JAVA" മുതലായവ) എന്ന വാക്കിന്റെ ആദ്യ സംഭവവികാസത്തിനായി ഒരു കേസ്-ഇൻസെൻസിറ്റീവ് രീതിയിൽ തിരയാൻ, നിങ്ങൾക്ക് കേസ്-ഇൻസെൻസിറ്റീവ് റെഗുലർ എക്സ്പ്രഷൻ /\bjava\b/ ഉപയോഗിക്കാം. ഐ. ഈ വാക്കിന്റെ എല്ലാ സംഭവങ്ങളും ഒരു സ്ട്രിംഗിൽ കണ്ടെത്താൻ, നിങ്ങൾക്ക് g ഫ്ലാഗ് ചേർക്കാം: /\bjava\b/gi.

രീതികൾ ക്ലാസ് സ്ട്രിംഗ്പാറ്റേൺ ഉപയോഗിച്ച് തിരയാൻ

ഈ സമയം വരെ, ഞങ്ങൾ സൃഷ്‌ടിക്കുന്ന പതിവ് പദപ്രയോഗങ്ങളുടെ വ്യാകരണത്തെക്കുറിച്ച് ഞങ്ങൾ ചർച്ച ചെയ്‌തു, എന്നാൽ ആ പതിവ് പദപ്രയോഗങ്ങൾ യഥാർത്ഥത്തിൽ JavaScript സ്‌ക്രിപ്റ്റുകളിൽ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ നോക്കിയിട്ടില്ല. IN ഈ വിഭാഗംപാറ്റേൺ പൊരുത്തപ്പെടുത്തലിനായി പതിവ് എക്‌സ്‌പ്രഷനുകൾ ഉപയോഗിക്കുന്ന സ്ട്രിംഗ് ഒബ്‌ജക്റ്റിന്റെ രീതികൾ ഞങ്ങൾ ചർച്ച ചെയ്യും, മാറ്റിസ്ഥാപിച്ച് തിരയുക. തുടർന്ന് RegExp ഒബ്‌ജക്‌റ്റും അതിന്റെ രീതികളും സവിശേഷതകളും നോക്കി പതിവ് എക്‌സ്‌പ്രഷനുകളുമായുള്ള പാറ്റേൺ പൊരുത്തപ്പെടുത്തലിനെക്കുറിച്ചുള്ള ഞങ്ങളുടെ സംഭാഷണം ഞങ്ങൾ തുടരും.

റെഗുലർ എക്‌സ്‌പ്രഷനുകൾ ഉപയോഗിക്കുന്ന നാല് രീതികളെ സ്ട്രിംഗുകൾ പിന്തുണയ്ക്കുന്നു. ഇതിൽ ഏറ്റവും ലളിതമായത് തിരയൽ () രീതിയാണ്. ഇത് ഒരു സാധാരണ പദപ്രയോഗത്തെ ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും പൊരുത്തപ്പെടുന്ന സബ്‌സ്‌ട്രിംഗിന്റെ ആദ്യ പ്രതീകത്തിന്റെ സ്ഥാനം അല്ലെങ്കിൽ പൊരുത്തം കണ്ടെത്തിയില്ലെങ്കിൽ -1 നൽകുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന കോൾ 4 തിരികെ നൽകും:

Var ഫലം = "JavaScript".search(/script/i); // 4

തിരയൽ() രീതിയിലേക്കുള്ള ആർഗ്യുമെന്റ് ഒരു സാധാരണ പദപ്രയോഗമല്ലെങ്കിൽ, അത് ആദ്യം RegExp കൺസ്ട്രക്റ്ററിലേക്ക് കൈമാറുന്നതിലൂടെ പരിവർത്തനം ചെയ്യപ്പെടും. തിരയൽ() രീതി ആഗോള തിരയലിനെ പിന്തുണയ്ക്കുന്നില്ല കൂടാതെ അതിന്റെ ആർഗ്യുമെന്റിൽ g ഫ്ലാഗ് അവഗണിക്കുന്നു.

റീപ്ലേസ് () രീതി ഒരു തിരയൽ, മാറ്റിസ്ഥാപിക്കൽ പ്രവർത്തനം നടത്തുന്നു. ഇത് അതിന്റെ ആദ്യ ആർഗ്യുമെന്റായി ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനും രണ്ടാമത്തേതായി ഒരു റീപ്ലേസ്‌മെന്റ് സ്‌ട്രിംഗും എടുക്കുന്നു. ഈ രീതി നിർദ്ദിഷ്ട പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നതിന് വിളിക്കുന്ന വരിയിൽ തിരയുന്നു.

റെഗുലർ എക്‌സ്‌പ്രഷനിൽ g ഫ്ലാഗ് അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, റീപ്ലേസ്‌മെന്റ് സ്‌ട്രിംഗിൽ കാണുന്ന എല്ലാ പൊരുത്തങ്ങളെയും റീപ്ലേസ്() രീതി മാറ്റിസ്ഥാപിക്കുന്നു. അല്ലെങ്കിൽ, കണ്ടെത്തിയ ആദ്യ പൊരുത്തം മാത്രം മാറ്റിസ്ഥാപിക്കുന്നു. റീപ്ലേസ്() രീതിയുടെ ആദ്യ ആർഗ്യുമെന്റ് ഒരു സാധാരണ എക്‌സ്‌പ്രഷനേക്കാൾ ഒരു സ്ട്രിംഗ് ആണെങ്കിൽ, സെർച്ച്() രീതി പോലെ RegExp() കൺസ്ട്രക്‌റ്റർ ഉപയോഗിച്ച് ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുപകരം സ്‌ട്രിംഗിനായുള്ള അക്ഷരാർത്ഥത്തിലുള്ള തിരയൽ രീതി നടത്തുന്നു.

ഒരു ഉദാഹരണമായി, യൂണിഫോം പ്ലെയ്‌സ്‌മെന്റിനായി നമുക്ക് പകരം() രീതി ഉപയോഗിക്കാം വലിയ അക്ഷരങ്ങൾ"JavaScript" എന്ന വാക്കിൽ ടെക്‌സ്‌റ്റിന്റെ മുഴുവൻ വരിയിലും:

// പ്രതീകങ്ങളുടെ കേസ് പരിഗണിക്കാതെ തന്നെ, ആവശ്യമുള്ള കേസിൽ ഒരു വാക്ക് ഉപയോഗിച്ച് ഞങ്ങൾ അവയെ മാറ്റിസ്ഥാപിക്കുന്നു var ഫലം = "javascript".replace(/JavaScript/ig, "JavaScript");

പകരം () രീതി കൂടുതൽ ആണ് ശക്തമായ ഉപകരണംഈ ഉദാഹരണം സൂചിപ്പിക്കുന്നതിനേക്കാൾ. ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനിലെ പരാൻതീസിസിലെ സബ്‌എക്‌സ്‌പ്രഷനുകൾ ഇടത്തുനിന്ന് വലത്തോട്ട് അക്കമിട്ടിട്ടുണ്ടെന്നും സാധാരണ എക്‌സ്‌പ്രഷനുകൾ ഓരോ ഉപവിഷ്‌കാരത്തിനും അനുയോജ്യമായ ടെക്‌സ്‌റ്റ് ഓർമ്മിക്കുമെന്നും ഞാൻ നിങ്ങളെ ഓർമ്മിപ്പിക്കട്ടെ. റീപ്ലേസ്‌മെന്റ് സ്‌ട്രിംഗിൽ $ ചിഹ്നവും ഒരു സംഖ്യയും അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, പകരം() രീതി ആ രണ്ട് പ്രതീകങ്ങളെ നിർദ്ദിഷ്ട ഉപവിഷ്‌കാരവുമായി പൊരുത്തപ്പെടുന്ന ടെക്‌സ്‌റ്റ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. ഇത് വളരെ ഉപയോഗപ്രദമായ അവസരം. ഉദാഹരണമായി, ASCII പ്രതീകങ്ങളാൽ അനുകരിക്കുന്ന ടൈപ്പോഗ്രാഫിക് ഉദ്ധരണികൾ ഉപയോഗിച്ച് ഒരു സ്ട്രിംഗിലെ നേരായ ഉദ്ധരണികൾ മാറ്റിസ്ഥാപിക്കാൻ നമുക്ക് ഇത് ഉപയോഗിക്കാം:

// ഒരു ഉദ്ധരണി എന്നത് ഉദ്ധരണികൾ (നമ്മൾ ഓർക്കുന്നവ) ഒഴികെ എത്ര പ്രതീകങ്ങൾ പിന്തുടരുന്ന ഒരു ഉദ്ധരണിയാണ്, തുടർന്ന് മറ്റൊരു ഉദ്ധരണി // var quote = /"([^"]*)"/g; // മാറ്റിസ്ഥാപിക്കുക ടൈപ്പോഗ്രാഫിക് ഉദ്ധരണികളുള്ള നേരായ ഉദ്ധരണികൾ കൂടാതെ "$1" മാറ്റാതെ വിടുക // $1 var ടെക്‌സ്‌റ്റിൽ സംഭരിച്ചിരിക്കുന്ന ഉദ്ധരണിയുടെ ഉള്ളടക്കം = ""ജാവാസ്‌ക്രിപ്റ്റ്" ഒരു വ്യാഖ്യാനിച്ച പ്രോഗ്രാമിംഗ് ഭാഷയാണ്."; var result = text.replace(quote, ""$1"" ) ; // "ജാവാസ്ക്രിപ്റ്റ്" ഒരു വ്യാഖ്യാന പ്രോഗ്രാമിംഗ് ഭാഷയാണ്.

ശ്രദ്ധിക്കേണ്ട ഒരു പ്രധാന കാര്യം, മാറ്റിസ്ഥാപിക്കാനുള്ള രണ്ടാമത്തെ ആർഗ്യുമെന്റ് റീപ്ലേസ്‌മെന്റ് സ്‌ട്രിംഗിനെ ചലനാത്മകമായി കണക്കാക്കുന്ന ഒരു ഫംഗ്‌ഷനായിരിക്കാം.

പതിവ് എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കുന്ന സ്ട്രിംഗ് ക്ലാസ് രീതികളിൽ ഏറ്റവും സാധാരണമായത് മാച്ച്() രീതിയാണ്. ഇത് ഒരു റെഗുലർ എക്‌സ്‌പ്രഷൻ അതിന്റെ ഏക ആർഗ്യുമെന്റായി എടുക്കുന്നു (അല്ലെങ്കിൽ അതിന്റെ ആർഗ്യുമെന്റിനെ RegExp() കൺസ്ട്രക്‌ടറിലേക്ക് കടത്തി ഒരു സാധാരണ എക്‌സ്‌പ്രഷനിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു) കൂടാതെ തിരയൽ ഫലങ്ങൾ അടങ്ങിയ ഒരു അറേ നൽകുന്നു. സാധാരണ എക്‌സ്‌പ്രഷനിലാണ് g ഫ്ലാഗ് സജ്ജീകരിച്ചിരിക്കുന്നതെങ്കിൽ, സ്‌ട്രിംഗിലുള്ള എല്ലാ പൊരുത്തങ്ങളുടെയും ഒരു ശ്രേണി ഈ രീതി നൽകുന്നു. ഉദാഹരണത്തിന്:

// തിരികെ നൽകും ["1", "2", "3"] var ഫലം = "1 പ്ലസ് 2 സമം 3".match(/\d+/g);

റെഗുലർ എക്‌സ്‌പ്രഷനിൽ g ഫ്ലാഗ് ഇല്ലെങ്കിൽ, മാച്ച്() രീതി ആഗോള തിരയൽ നടത്തില്ല; അത് ആദ്യ മത്സരത്തിനായി നോക്കുന്നു. എന്നിരുന്നാലും, രീതി ആഗോള തിരയൽ നടത്താത്തപ്പോൾ പോലും മാച്ച്() ഒരു അറേ നൽകുന്നു. ഈ സാഹചര്യത്തിൽ, അറേയുടെ ആദ്യ ഘടകം കണ്ടെത്തിയ ഉപസ്‌ട്രിംഗാണ്, ശേഷിക്കുന്ന എല്ലാ ഘടകങ്ങളും റെഗുലർ എക്‌സ്‌പ്രഷന്റെ ഉപവിഷ്‌കാരങ്ങളാണ്. അതിനാൽ, match() ഒരു അറേ arr നൽകുന്നുവെങ്കിൽ, arr-ൽ കണ്ടെത്തിയ മുഴുവൻ സ്‌ട്രിംഗും അടങ്ങിയിരിക്കും, ആദ്യത്തെ സബ്‌എക്‌സ്‌പ്രഷനുമായി ബന്ധപ്പെട്ട സബ്‌സ്‌ട്രിംഗ് മുതലായവ. റീപ്ലേസ്() രീതിയുമായി ഒരു സമാന്തരമായി വരയ്ക്കുമ്പോൾ, $n-ന്റെ ഉള്ളടക്കങ്ങൾ arr[n]-ൽ നൽകിയെന്ന് നമുക്ക് പറയാം.

ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്നവ നോക്കുക പ്രോഗ്രാം കോഡ് URL പാഴ്‌സ് ചെയ്യുന്നത്:

Var url = /(\w+):\/\/([\w.]+)\/(\S*)/; var text = "ഞങ്ങളുടെ വെബ്സൈറ്റ് സന്ദർശിക്കുക http://www..php"; var ഫലം = text.match(url); എങ്കിൽ (ഫലം != null) ( var fullurl = ഫലം; // "http://www..php" var പ്രോട്ടോക്കോൾ = ഫലം അടങ്ങിയിരിക്കുന്നു; // "http" var host = ഫലം അടങ്ങിയിരിക്കുന്നു; // "www..php അടങ്ങിയിരിക്കുന്നു ")

g ഫ്ലാഗ് സെറ്റ് ഇല്ലാത്ത ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനു വേണ്ടി എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ് ആഗോള തിരയൽ, മാച്ച്() രീതി സാധാരണ എക്‌സ്‌പ്രെഷന്റെ എക്‌സ്‌ക്() രീതിയുടെ അതേ മൂല്യം നൽകുന്നു: റിട്ടേൺ അറേയ്‌ക്ക് ഇൻഡക്‌സും ഇൻപുട്ട് പ്രോപ്പർട്ടികളും ഉണ്ട്, ചുവടെയുള്ള എക്‌സെക്() രീതിയുടെ ചർച്ചയിൽ വിവരിച്ചിരിക്കുന്നത് പോലെ.

സാധാരണ പദപ്രയോഗങ്ങൾ ഉപയോഗിക്കുന്ന സ്ട്രിംഗ് ഒബ്‌ജക്റ്റിന്റെ അവസാന രീതി സ്പ്ലിറ്റ്() ആണ്. ഈ രീതി, ആർഗ്യുമെന്റ് ഒരു ഡിലിമിറ്ററായി ഉപയോഗിച്ചുകൊണ്ട് സബ്‌സ്ട്രിംഗുകളുടെ ഒരു നിരയായി വിളിക്കപ്പെടുന്ന സ്ട്രിംഗിനെ വിഭജിക്കുന്നു. ഉദാഹരണത്തിന്:

"123,456,789".സ്പ്ലിറ്റ്(","); // മടങ്ങുക ["123","456","789"]

സ്പ്ലിറ്റ്() രീതിക്ക് ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനും ഒരു ആർഗ്യുമെന്റായി എടുക്കാം. ഇത് രീതിയെ കൂടുതൽ ശക്തമാക്കുന്നു. ഉദാഹരണത്തിന്, അനുവദിക്കുന്ന ഒരു സെപ്പറേറ്റർ നിങ്ങൾക്ക് വ്യക്തമാക്കാം അനിയന്ത്രിതമായ നമ്പർഇരുവശത്തും വൈറ്റ്‌സ്പെയ്സ്:

"1, 2, 3 , 4 , 5". split(/\s*,\s*/); // മടങ്ങുക ["1","2","3","4","5"]

RegExp ഒബ്ജക്റ്റ്

സൂചിപ്പിച്ചതുപോലെ, റെഗുലർ എക്സ്പ്രഷനുകളെ RegExp ഒബ്ജക്റ്റുകളായി പ്രതിനിധീകരിക്കുന്നു. RegExp() കൺസ്ട്രക്റ്റർ കൂടാതെ, RegExp ഒബ്‌ജക്റ്റുകൾ മൂന്ന് രീതികളും നിരവധി ഗുണങ്ങളും പിന്തുണയ്ക്കുന്നു.

RegExp() കൺസ്ട്രക്റ്റർ ഒന്നോ രണ്ടോ സ്ട്രിംഗ് ആർഗ്യുമെന്റുകൾ എടുത്ത് ഒരു പുതിയ RegExp ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നു. കൺസ്‌ട്രക്‌ടറിലേക്കുള്ള ആദ്യ വാദം, റെഗുലർ എക്‌സ്‌പ്രെഷന്റെ ബോഡി അടങ്ങുന്ന ഒരു സ്ട്രിംഗ് ആണ്, അതായത്. അക്ഷരാർത്ഥത്തിൽ ഒരു സാധാരണ പദപ്രയോഗത്തിൽ സ്ലാഷ് പ്രതീകങ്ങൾക്കിടയിൽ ദൃശ്യമാകേണ്ട വാചകം. സ്‌ട്രിംഗ് ലിറ്ററലുകളും റെഗുലർ എക്‌സ്‌പ്രെഷനുകളും എസ്‌കേപ്പ് സീക്വൻസുകളെ പ്രതിനിധീകരിക്കുന്നതിന് \ പ്രതീകം ഉപയോഗിക്കുന്നു എന്നത് ശ്രദ്ധിക്കുക, അതിനാൽ റെഗുലർ എക്‌സ്‌പ്രഷൻ ഒരു സ്‌ട്രിംഗ് ലിറ്ററലായി RegExp() കൺസ്ട്രക്‌റ്ററിലേക്ക് കൈമാറുമ്പോൾ, നിങ്ങൾ ഓരോ \ പ്രതീകത്തിനും പകരം ഒരു ജോടി \\ പ്രതീകങ്ങൾ നൽകണം.

RegExp() എന്നതിലേക്കുള്ള രണ്ടാമത്തെ ആർഗ്യുമെന്റ് നഷ്‌ടമായേക്കാം. വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, അത് റെഗുലർ എക്സ്പ്രഷൻ ഫ്ലാഗുകളെ നിർവചിക്കുന്നു. ഇത് g, i, m അല്ലെങ്കിൽ ഈ പ്രതീകങ്ങളുടെ സംയോജനത്തിൽ ഒന്നായിരിക്കണം. ഉദാഹരണത്തിന്:

// ഒരു സ്ട്രിംഗിൽ എല്ലാ അഞ്ചക്ക നമ്പറുകളും കണ്ടെത്തുന്നു. ശ്രദ്ധിക്കുക // ഈ ഉദാഹരണത്തിലെ ചിഹ്നങ്ങളുടെ ഉപയോഗം \\ var zipcode = new RegExp("\\d(5)", "g");

റെഗുലർ എക്സ്പ്രഷൻ ചലനാത്മകമായി ജനറേറ്റുചെയ്യുമ്പോൾ RegExp() കൺസ്ട്രക്റ്റർ ഉപയോഗപ്രദമാണ്, അതിനാൽ സാധാരണ എക്സ്പ്രഷൻ ലിറ്ററൽ വാക്യഘടന ഉപയോഗിച്ച് പ്രതിനിധീകരിക്കാൻ കഴിയില്ല. ഉദാഹരണത്തിന്, ഉപയോക്താവ് നൽകിയ ഒരു സ്ട്രിംഗ് കണ്ടെത്തുന്നതിന്, നിങ്ങൾ റൺടൈമിൽ RegExp() ഉപയോഗിച്ച് ഒരു സാധാരണ എക്സ്പ്രഷൻ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

RegExp പ്രോപ്പർട്ടികൾ

ഓരോ RegExp ഒബ്ജക്റ്റിനും അഞ്ച് ഗുണങ്ങളുണ്ട്. റെഗുലർ എക്‌സ്‌പ്രഷനിലെ ടെക്‌സ്‌റ്റ് അടങ്ങിയ ഒരു റീഡ്-ഒൺലി സ്‌ട്രിംഗാണ് ഉറവിട പ്രോപ്പർട്ടി. ഗ്ലോബൽ പ്രോപ്പർട്ടി ഒരു റീഡ്-ഒൺലി ബൂളിയൻ മൂല്യമാണ്, അത് സാധാരണ എക്സ്പ്രഷനിൽ g ഫ്ലാഗ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കുന്നു. റെഗുലർ എക്‌സ്‌പ്രഷനിൽ i ഫ്ലാഗ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കുന്ന റീഡ്-ഒൺലി ബൂളിയൻ മൂല്യമാണ് ഇഗ്നോർകേസ് പ്രോപ്പർട്ടി. റെഗുലർ എക്‌സ്‌പ്രഷനിൽ m ഫ്ലാഗ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കുന്ന റീഡ്-ഒൺലി ബൂളിയൻ മൂല്യമാണ് മൾട്ടിലൈൻ പ്രോപ്പർട്ടി. അവസാനത്തെ പ്രോപ്പർട്ടി, ലാസ്റ്റ് ഇൻഡക്സ്, വായിക്കാനും എഴുതാനും കഴിയുന്ന ഒരു പൂർണ്ണസംഖ്യയാണ്. g ഫ്ലാഗ് ഉള്ള പാറ്റേണുകൾക്കായി, ഈ പ്രോപ്പർട്ടിയിൽ അടുത്ത തിരയൽ ആരംഭിക്കേണ്ട വരിയിലെ സ്ഥാന നമ്പർ അടങ്ങിയിരിക്കുന്നു. താഴെ വിവരിച്ചിരിക്കുന്നതുപോലെ, ഇത് exec() ഉം test() രീതികളും ഉപയോഗിക്കുന്നു.

RegExp രീതികൾ

RegExp ഒബ്ജക്റ്റുകൾ പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ നടത്തുന്ന രണ്ട് രീതികൾ നിർവചിക്കുന്നു; മുകളിൽ വിവരിച്ച സ്ട്രിംഗ് ക്ലാസ് രീതികൾക്ക് സമാനമായി അവർ പെരുമാറുന്നു. പാറ്റേൺ പൊരുത്തപ്പെടുത്തലിനായി ഉപയോഗിക്കുന്ന RegExp ക്ലാസിന്റെ പ്രധാന രീതി exec() ആണ്. ഇത് സ്ട്രിംഗ് ക്ലാസിന്റെ മുമ്പ് സൂചിപ്പിച്ച മാച്ച്() രീതിക്ക് സമാനമാണ്, ഇത് ഒരു സ്ട്രിംഗ് ഒരു വാദമായി എടുക്കുന്ന ഒരു RegExp ക്ലാസ് രീതിയാണ് എന്നതൊഴിച്ചാൽ, ഒരു RegExp ആർഗ്യുമെന്റ് എടുക്കുന്ന ഒരു സ്ട്രിംഗ് ക്ലാസ് രീതിക്ക് പകരം.

exec() രീതി നിർദ്ദിഷ്ട സ്‌ട്രിങ്ങിനുള്ള റെഗുലർ എക്‌സ്‌പ്രഷൻ എക്‌സിക്യൂട്ട് ചെയ്യുന്നു, അതായത്. ഒരു സ്ട്രിംഗിൽ ഒരു പൊരുത്തം തിരയുന്നു. പൊരുത്തമൊന്നും കണ്ടെത്തിയില്ലെങ്കിൽ, രീതി അസാധുവായി നൽകുന്നു. എന്നിരുന്നാലും, ഒരു പൊരുത്തം കണ്ടെത്തിയാൽ, അത് g ഫ്ലാഗ് ഇല്ലാതെ തിരയുന്നതിനുള്ള മാച്ച്() രീതി നൽകുന്ന അറേയുടെ അതേ അറേ നൽകുന്നു. അറേയുടെ സീറോ എലമെന്റിൽ റെഗുലർ എക്‌സ്‌പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന സ്‌ട്രിംഗ് അടങ്ങിയിരിക്കുന്നു, കൂടാതെ എല്ലാം തുടർന്നുള്ള ഘടകങ്ങൾ- എല്ലാ സബ്‌എക്‌സ്‌പ്രഷനുകൾക്കും അനുയോജ്യമായ സബ്‌സ്‌ട്രിംഗുകൾ. കൂടാതെ, സ്വത്ത് സൂചികഅനുബന്ധ ശകലം ആരംഭിക്കുന്ന പ്രതീകത്തിന്റെ സ്ഥാന നമ്പറും പ്രോപ്പർട്ടിയും അടങ്ങിയിരിക്കുന്നു ഇൻപുട്ട്തിരഞ്ഞ വരിയെ സൂചിപ്പിക്കുന്നു.

മാച്ച്(), സാധാരണ എക്‌സ്‌പ്രഷനിലെ g ഫ്ലാഗിന്റെ സാന്നിധ്യത്തെ ആശ്രയിക്കാത്ത ഘടനയുള്ള ഒരു അറേ എക്‌സിക്() രീതി നൽകുന്നു. ഒരു ഗ്ലോബൽ റെഗുലർ എക്‌സ്‌പ്രഷൻ കടന്നുപോകുമ്പോൾ, മാച്ച്() രീതി കണ്ടെത്തിയ പൊരുത്തങ്ങളുടെ ഒരു നിര നൽകുന്നു എന്ന് ഞാൻ നിങ്ങളെ ഓർമ്മിപ്പിക്കട്ടെ. കൂടാതെ exec() എപ്പോഴും ഒരു പൊരുത്തം നൽകുന്നു, പക്ഷേ അതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ നൽകുന്നു മുഴുവൻ വിവരങ്ങൾ. g ഫ്ലാഗ് അടങ്ങുന്ന ഒരു റെഗുലർ എക്‌സ്‌പ്രഷനിൽ exec() വിളിക്കുമ്പോൾ, മെത്തേഡ് റെഗുലർ എക്‌സ്‌പ്രഷൻ ഒബ്‌ജക്റ്റിന്റെ ലാസ്റ്റ് ഇൻഡക്‌സ് പ്രോപ്പർട്ടി, കണ്ടെത്തിയ സബ്‌സ്‌ട്രിംഗിന് തൊട്ടുപിന്നാലെ പ്രതീകത്തിന്റെ സ്ഥാന നമ്പറിലേക്ക് സജ്ജമാക്കുന്നു.

അതേ റെഗുലർ എക്‌സ്‌പ്രഷനിൽ എക്‌സിക്() എന്നതിനെ രണ്ടാം തവണ വിളിക്കുമ്പോൾ, ലാസ്റ്റ് ഇൻഡക്‌സ് പ്രോപ്പർട്ടിയിൽ വ്യക്തമാക്കിയിരിക്കുന്ന പ്രതീകത്തിൽ അത് തിരയൽ ആരംഭിക്കുന്നു. exec() ഒരു പൊരുത്തം കണ്ടെത്തിയില്ലെങ്കിൽ, ലാസ്റ്റ് ഇൻഡക്‌സ് പ്രോപ്പർട്ടി 0 ആയി സജ്ജീകരിക്കും. (നിങ്ങൾക്ക് എപ്പോൾ വേണമെങ്കിലും ലാസ്റ്റ് ഇൻഡക്‌സ് പൂജ്യമായി സജ്ജീകരിക്കാം, ഒരൊറ്റ വരിയിൽ അവസാനത്തെ പൊരുത്തത്തിന് മുമ്പ് തിരയൽ അവസാനിക്കുന്ന എല്ലാ സാഹചര്യങ്ങളിലും ഇത് ചെയ്യണം. കണ്ടെത്തി, അതേ RegExp ഒബ്‌ജക്‌റ്റ് ഉപയോഗിച്ച് മറ്റൊരു ലൈനിൽ തിരയൽ ആരംഭിക്കുന്നു.) ഈ പ്രത്യേക സ്വഭാവം എക്‌സ്‌എക്()നെ ലൈനിലെ റെഗുലർ എക്‌സ്‌പ്രഷനിലെ എല്ലാ പൊരുത്തങ്ങളിലും ആവർത്തിച്ച് വിളിക്കാൻ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്:

Var പാറ്റേൺ = /Java/g; var text = "JavaScript ആണ് ജാവയെക്കാൾ രസകരം!"; var ഫലം; while((ഫലം = pattern.exec(text)) != null) ( console.log("" + result പാറ്റേൺ .lastIndex); )

RegExp ഒബ്‌ജക്റ്റിന്റെ മറ്റൊരു രീതി test() ആണ്, അത് വളരെ കൂടുതലാണ് ലളിതമായ രീതിഎക്സിക്(). ഇത് ഒരു സ്‌ട്രിംഗ് എടുക്കുകയും സ്‌ട്രിംഗ് പതിവ് എക്‌സ്‌പ്രഷനുമായി പൊരുത്തപ്പെടുന്നെങ്കിൽ ശരി തിരികെ നൽകുകയും ചെയ്യുന്നു:

Var പാറ്റേൺ = /java/i; pattern.test("JavaScript"); // സത്യമായി മടങ്ങുക

കോളിംഗ് ടെസ്റ്റ്() എന്നത് കോളിംഗ് എക്‌സിക്()ന് തുല്യമാണ്, ഇത് എക്‌സിക്() ശൂന്യമല്ലാത്ത മറ്റെന്തെങ്കിലും നൽകുകയാണെങ്കിൽ അത് ശരിയാണെന്ന് നൽകുന്നു. ഇക്കാരണത്താൽ, ഒരു ഗ്ലോബൽ റെഗുലർ എക്‌സ്‌പ്രഷനിൽ വിളിക്കുമ്പോൾ എക്‌സിക്() രീതി പോലെ തന്നെ ടെസ്റ്റ്() രീതിയും പ്രവർത്തിക്കുന്നു: ലാസ്റ്റ് ഇൻഡക്‌സ് പ്രോപ്പർട്ടി വ്യക്തമാക്കിയ സ്ഥാനത്ത്, അത് ഒരു പൊരുത്തം കണ്ടെത്തുകയാണെങ്കിൽ, അത് നിർദ്ദിഷ്ട സ്‌ട്രിംഗിനായി തിരയാൻ തുടങ്ങുന്നു. , അവസാന ഇൻഡക്സ് പ്രോപ്പർട്ടി, കണ്ടെത്തിയ പൊരുത്തത്തിന് തൊട്ടടുത്തുള്ള പ്രതീക സ്ഥാന നമ്പറിലേക്ക് സജ്ജീകരിക്കുന്നു. അതിനാൽ, test() രീതി ഉപയോഗിച്ച്, exec() രീതി ഉപയോഗിക്കുന്ന അതേ രീതിയിൽ നിങ്ങൾക്ക് ഒരു ലൈൻ ട്രാവെർസൽ ലൂപ്പ് സൃഷ്ടിക്കാൻ കഴിയും.

പതിവ് പദപ്രയോഗങ്ങളുടെ വാക്യഘടന വളരെ സങ്കീർണ്ണവും പഠിക്കാൻ ഗൗരവമായ പരിശ്രമം ആവശ്യമാണ്. മികച്ച മാർഗ്ഗനിർദ്ദേശംറെഗുലർ എക്‌സ്‌പ്രഷനിലെ ഇന്നത്തെ പുസ്തകം ജെ. ഫ്രീഡലിന്റെ "റെഗുലർ എക്‌സ്‌പ്രഷൻസ്" എന്ന പുസ്തകമാണ്, ഇത് രചയിതാവിന്റെ അഭിപ്രായത്തിൽ "പതിവ് പദപ്രയോഗങ്ങളിൽ ചിന്തിക്കാൻ പഠിക്കാൻ" അനുവദിക്കുന്നു.

അടിസ്ഥാന സങ്കൽപങ്ങൾ

റെഗുലർ എക്സ്പ്രഷൻ എന്നത് ഒരു ടെക്സ്റ്റ് പാറ്റേൺ നിർവചിക്കുന്ന സ്ട്രിംഗുകൾ അല്ലെങ്കിൽ പ്രതീകങ്ങളുടെ ഒരു ക്രമം പ്രോസസ്സ് ചെയ്യുന്നതിനുള്ള ഒരു മാർഗമാണ്.

മോഡിഫയർ - പതിവ് പദപ്രയോഗം "നിർദ്ദേശിക്കുക" ഉദ്ദേശിച്ചുള്ളതാണ്.

സാധാരണ എക്സ്പ്രഷൻ ഭാഷയിൽ കമാൻഡുകളായി പ്രവർത്തിക്കുന്ന പ്രത്യേക പ്രതീകങ്ങളാണ് മെറ്റാക്യാരക്‌ടറുകൾ.

ഒരു റെഗുലർ എക്സ്പ്രഷൻ ഒരു റെഗുലർ വേരിയബിളായി സജ്ജീകരിച്ചിരിക്കുന്നു, ഉദ്ധരണികൾക്ക് പകരം ഒരു സ്ലാഷ് മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ, ഉദാഹരണത്തിന്: var reg=/reg_expression/

ഏറ്റവും ലളിതമായ ടെംപ്ലേറ്റുകൾ കൊണ്ട് ഞങ്ങൾ അർത്ഥമാക്കുന്നത് പ്രത്യേക പ്രതീകങ്ങളൊന്നും ആവശ്യമില്ലാത്ത ടെംപ്ലേറ്റുകളെയാണ്.

"r" (ചെറുതും വലിയതും) എല്ലാ അക്ഷരങ്ങളും ലാറ്റിൻ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക എന്നതാണ് ഞങ്ങളുടെ ചുമതലയെന്ന് പറയാം വലിയ അക്ഷരംവാക്യത്തിൽ "R" റെഗുലർ എക്സ്പ്രഷനുകൾ.

ഒരു ടെംപ്ലേറ്റ് സൃഷ്ടിക്കുക var reg=/р/ രീതി ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകഞങ്ങൾ ഞങ്ങളുടെ പദ്ധതികൾ നടപ്പിലാക്കുന്നു



var reg=/р/

document.write(ഫലം)

തൽഫലമായി, ഞങ്ങൾക്ക് ലൈൻ ലഭിക്കുന്നു - പതിവ് എക്സ്പ്രഷനുകൾ, കേസ് കണക്കിലെടുത്ത് “p” എന്ന അക്ഷരത്തിന്റെ ആദ്യ സംഭവത്തിൽ മാത്രമാണ് മാറ്റിസ്ഥാപിക്കൽ സംഭവിച്ചത്.

എന്നാൽ ഈ ഫലം ഞങ്ങളുടെ ടാസ്ക്കിന്റെ വ്യവസ്ഥകൾക്ക് അനുയോജ്യമല്ല ... ഇവിടെ നമുക്ക് മോഡിഫയറുകൾ "g", "i" എന്നിവ ആവശ്യമാണ്, അത് വെവ്വേറെയും ഒന്നിച്ചും ഉപയോഗിക്കാം. ഈ മോഡിഫയറുകൾ സ്ലാഷിന് ശേഷം പതിവ് എക്സ്പ്രഷൻ പാറ്റേണിന്റെ അവസാനം സ്ഥാപിച്ചിരിക്കുന്നു ഇനിപ്പറയുന്ന മൂല്യങ്ങൾ:

മോഡിഫയർ "g" - വരിയിലെ തിരയൽ "ഗ്ലോബൽ" ആയി സജ്ജീകരിക്കുന്നു, അതായത്. ഞങ്ങളുടെ കാര്യത്തിൽ, "p" എന്ന അക്ഷരത്തിന്റെ എല്ലാ സംഭവങ്ങൾക്കും പകരം വയ്ക്കൽ സംഭവിക്കും. ഇപ്പോൾ ടെംപ്ലേറ്റ് ഇതുപോലെ കാണപ്പെടുന്നു: var reg=/р/g , അത് ഞങ്ങളുടെ കോഡിൽ പകരം വയ്ക്കുന്നു


var str="പതിവ് പദപ്രയോഗങ്ങൾ"
var reg=/р/g
var ഫലം=str.replace(reg, "R")
document.write(ഫലം)

നമുക്ക് സ്ട്രിംഗ് ലഭിക്കും - റെഗുലർ എക്സ്പ്രഷനുകൾ.

മോഡിഫയർ "i" - ഒരു സ്ട്രിംഗിൽ ഒരു കേസ്-ഇൻസെൻസിറ്റീവ് സെർച്ച് വ്യക്തമാക്കുന്നു. ഈ മോഡിഫയർ ഞങ്ങളുടെ ടെംപ്ലേറ്റിൽ var reg=/р/gi എന്നതിലേക്ക് ചേർക്കുന്നതിലൂടെ, സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്തതിന് ശേഷം, നമ്മുടെ ടാസ്ക്കിന്റെ ആവശ്യമുള്ള ഫലം - റെഗുലർ എക്സ്പ്രഷനുകൾ ലഭിക്കും.

പ്രത്യേക പ്രതീകങ്ങൾ (മെറ്റാക്യാരക്‌ടറുകൾ)

സെർച്ച് സ്‌ട്രിംഗിന്റെ പ്രതീകങ്ങളുടെ തരം, ടെക്‌സ്‌റ്റിൽ തിരയൽ സ്‌ട്രിംഗ് ചുറ്റപ്പെട്ടിരിക്കുന്ന രീതി, അതുപോലെ പ്രതീകങ്ങളുടെ എണ്ണം എന്നിവ മെറ്റാക്യാരാക്‌ടറുകൾ വ്യക്തമാക്കുന്നു. പ്രത്യേക തരംകാണുന്ന വാചകത്തിൽ. അതിനാൽ, മെറ്റാക്യാരാക്ടറുകളെ മൂന്ന് ഗ്രൂപ്പുകളായി തിരിക്കാം:

  • പൊരുത്തങ്ങൾക്കായി തിരയുന്നതിനുള്ള മെറ്റാ പ്രതീകങ്ങൾ.
  • ക്വാണ്ടിറ്റേറ്റീവ് മെറ്റാക്യാരക്‌ടറുകൾ.
  • മെറ്റാക്രാക്‌ടറുകൾ സ്ഥാപിക്കുന്നു.
പൊരുത്തപ്പെടുത്തലിനുള്ള മെറ്റാക്യാരക്‌ടറുകൾ

അർത്ഥം

വിവരണം

വാക്ക് അതിർത്തി

ഒരു വാക്കിന്റെ തുടക്കത്തിലോ അവസാനത്തിലോ പാറ്റേൺ എക്സിക്യൂട്ട് ചെയ്യേണ്ട ഒരു വ്യവസ്ഥ വ്യക്തമാക്കുന്നു

/\ber/ പൊരുത്തം പിശക്, ചേരുന്നില്ല കഥാനായകന്അല്ലെങ്കിൽ കൂടെ കളിക്കാരൻ
/er/ പൊരുത്തം കളിക്കാരൻ, ചേരുന്നില്ല കഥാനായകന്അല്ലെങ്കിൽ കൂടെ പിശക്
/\ber\b/ പൊരുത്തപ്പെടുന്നില്ല കഥാനായകന്അല്ലെങ്കിൽ കൂടെ കളിക്കാരൻഅല്ലെങ്കിൽ കൂടെ പിശക്, എന്നിവയുമായി മാത്രമേ പൊരുത്തപ്പെടാൻ കഴിയൂ er

ഒരു വാക്കിന്റെ പരിധിയില്ല

ഒരു വാക്കിന്റെ തുടക്കത്തിലോ അവസാനത്തിലോ പാറ്റേൺ നടപ്പിലാക്കാത്ത ഒരു വ്യവസ്ഥ വ്യക്തമാക്കുന്നു

/\Ber/ മത്സരങ്ങൾ കഥാനായകന്അല്ലെങ്കിൽ കൂടെ കളിക്കാരൻ, ചേരുന്നില്ല പിശക്
/er\B/ പൊരുത്തങ്ങൾ പിശക്അല്ലെങ്കിൽ കൂടെ കളിക്കാരൻ, ചേരുന്നില്ല കഥാനായകന്
/\Ber\B/ പൊരുത്തങ്ങൾ കഥാനായകന്, ചേരുന്നില്ല കളിക്കാരൻഅല്ലെങ്കിൽ കൂടെ പിശക്

0 മുതൽ 9 വരെയുള്ള സംഖ്യ

/\d\d\d\d/ ഏതെങ്കിലും നാലക്ക സംഖ്യയുമായി പൊരുത്തപ്പെടുന്നു

/\D\D\D\D/ പൊരുത്തപ്പെടില്ല 2005 അഥവാ 05. ഗ്രാംഅഥവാ №126 തുടങ്ങിയവ.

ഒറ്റ ശൂന്യമായ പ്രതീകം

ബഹിരാകാശ സ്വഭാവവുമായി പൊരുത്തപ്പെടുന്നു

\over\sbyte\ പൊരുത്തങ്ങൾ മാത്രം ഓവർ ബൈറ്റ്

ഒറ്റ നോൺ-ബ്ലാങ്ക് പ്രതീകം

സ്പേസ് ഒഴികെയുള്ള ഏതെങ്കിലും ഒരു പ്രതീകം

\over\Sbyte\ പൊരുത്തങ്ങൾ ഓവർ-ബൈറ്റ്അല്ലെങ്കിൽ കൂടെ ഓവർ_ബൈറ്റ്, ചേരുന്നില്ല ഓവർ ബൈറ്റ്അഥവാ ഓവർ-ബൈറ്റ്

അക്ഷരം, നമ്പർ അല്ലെങ്കിൽ അടിവര

/A\w/ പൊരുത്തങ്ങൾ A1അല്ലെങ്കിൽ കൂടെ എബി, ചേരുന്നില്ല A+

ഒരു അക്ഷരമോ അക്കമോ അടിവരയോ അല്ല

/A\W/ പൊരുത്തപ്പെടുന്നില്ല A1അല്ലെങ്കിൽ കൂടെ എബി, യോജിക്കുന്നു A+

ഏതെങ്കിലും കഥാപാത്രം

ഏതെങ്കിലും അടയാളങ്ങൾ, അക്ഷരങ്ങൾ, അക്കങ്ങൾ മുതലായവ.

/.../ ഏതെങ്കിലും മൂന്ന് പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നു എബിസിഅഥവാ !@4 അഥവാ 1 ക്യു

പ്രതീക സെറ്റ്

സ്ക്വയർ ബ്രാക്കറ്റിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന പ്രതീകങ്ങളുടെ ഏത് പൊരുത്തത്തിനും പാറ്റേൺ എക്സിക്യൂട്ട് ചെയ്യേണ്ട ഒരു വ്യവസ്ഥ വ്യക്തമാക്കുന്നു

/WERTY/ മത്സരങ്ങൾ QWERTY, കൂടെ AWERTY

ഉൾപ്പെടുത്താത്ത പ്രതീകങ്ങളുടെ കൂട്ടം

സ്ക്വയർ ബ്രാക്കറ്റിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന പ്രതീകങ്ങളുടെ ഏതെങ്കിലും പൊരുത്തത്തിന് പാറ്റേൺ എക്സിക്യൂട്ട് ചെയ്യാൻ പാടില്ലാത്ത ഒരു വ്യവസ്ഥ വ്യക്തമാക്കുന്നു

/[^QA]WERTY/ പൊരുത്തപ്പെടുന്നില്ല QWERTY, കൂടെ AWERTY

"മാച്ച് സെർച്ച് മെറ്റാക്യാരക്‌റ്ററുകൾ" എന്ന പട്ടികയിൽ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്ന പ്രതീകങ്ങൾ, \\t - ടാബ്, \\n - ന്യൂലൈൻ മുതലായ സ്‌ട്രിംഗുകളിൽ ഉപയോഗിക്കുന്ന എസ്‌കേപ്പ് പ്രതീകങ്ങളുടെ ക്രമവുമായി ആശയക്കുഴപ്പത്തിലാക്കരുത്.

ക്വാണ്ടിറ്റേറ്റീവ് മെറ്റാക്യാരക്‌ടറുകൾ

യാദൃശ്ചികതകളുടെ എണ്ണം

പൂജ്യം കൂടാതെ വലിയ അളവ്ഒരിക്കല്

/Ja*vaScript/ പൊരുത്തം ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്, ചേരുന്നില്ല ജോവാസ്ക്രിപ്റ്റ്

പൂജ്യം അല്ലെങ്കിൽ ഒരു തവണ

/Ja?vaScript/ പൊരുത്തങ്ങൾ മാത്രം ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്

ഒന്നോ അതിലധികമോ തവണ

/Ja+vaScript/ പൊരുത്തം ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്, ചേരുന്നില്ല ജാവാസ്ക്രിപ്റ്റ്

കൃത്യമായി n തവണ

/Ja(2)vaScript/ പൊരുത്തങ്ങൾ മാത്രം ജാവാസ്ക്രിപ്റ്റ്

n അല്ലെങ്കിൽ കൂടുതൽ തവണ

/Ja(2,)vaScript/ പൊരുത്തം ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്, ചേരുന്നില്ല ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്

എഴുതിയത് ഇത്രയെങ്കിലും, n തവണ, എന്നാൽ m തവണയിൽ കൂടുതൽ അല്ല

/Ja(2,3)vaScript/ പൊരുത്തങ്ങൾ മാത്രം ജാവാസ്ക്രിപ്റ്റ്അല്ലെങ്കിൽ കൂടെ ജാവാസ്ക്രിപ്റ്റ്

ക്വാണ്ടിറ്റേറ്റീവ് മെറ്റാക്യാരാക്‌ടേഴ്‌സ് പട്ടികയിൽ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഓരോ പ്രതീകവും പതിവ് എക്‌സ്‌പ്രഷനിലെ ഒരു മുൻ പ്രതീകത്തിനോ മെറ്റാക്യാരാക്‌ടറിനോ ബാധകമാണ്.

മെറ്റാക്രാക്‌ടറുകൾ സ്ഥാപിക്കുന്നു

അവസാന സെറ്റ്വരിയുടെ തുടക്കത്തിലോ അവസാനത്തിലോ ഒരു സബ്‌സ്‌ട്രിംഗിനായി എവിടെ നോക്കണം (പ്രധാനമെങ്കിൽ) സൂചിപ്പിക്കാൻ മെറ്റാക്യാരക്‌ടറുകൾ ഉദ്ദേശിച്ചുള്ളതാണ്.

ടെംപ്ലേറ്റുകളിൽ പ്രവർത്തിക്കുന്നതിനുള്ള ചില രീതികൾ

മാറ്റിസ്ഥാപിക്കുക - ഈ രീതിലേഖനത്തിന്റെ തുടക്കത്തിൽ തന്നെ ഞങ്ങൾ ഇത് ഉപയോഗിച്ചു, ഇത് ഒരു പാറ്റേൺ തിരയാനും കണ്ടെത്തിയ സബ്‌സ്‌ട്രിംഗിനെ ഒരു പുതിയ സബ്‌സ്‌ട്രിംഗുമായി മാറ്റിസ്ഥാപിക്കാനും രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു.

exec - ഈ രീതി ടെംപ്ലേറ്റ് വ്യക്തമാക്കിയ പാറ്റേണിനെതിരെ ഒരു സ്ട്രിംഗ് മാച്ച് നടത്തുന്നു. പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ പരാജയപ്പെടുകയാണെങ്കിൽ, അത് തിരികെ നൽകുന്നു ശൂന്യമായ മൂല്യം. അല്ലാത്തപക്ഷം, നൽകിയിരിക്കുന്ന പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന സബ്‌സ്ട്രിംഗുകളുടെ ഒരു നിരയാണ് ഫലം. /*അറേയുടെ ആദ്യ ഘടകം നൽകിയിരിക്കുന്ന പാറ്റേണിനെ തൃപ്തിപ്പെടുത്തുന്ന യഥാർത്ഥ സ്‌ട്രിങ്ങിന് തുല്യമായിരിക്കും*/

ഉദാഹരണത്തിന്:


var reg=/(\d+).(\d+).(\d+)/
var arr=reg.exec("ഞാൻ ജനിച്ചത് സെപ്റ്റംബർ 15, 1980")
document.write("ജനന തീയതി: ", arr, "< br>")
document.write("ജന്മദിനം: ", arr, "< br>")
document.write("ജന്മമാസം: ", arr, "< br>")
document.write("ജനന വർഷം: ", arr, "< br>")

തൽഫലമായി, നമുക്ക് നാല് വരികൾ ലഭിക്കും:
ജനനത്തീയതി: 09/15/1980
ജന്മദിനം: 15
ജനിച്ച മാസം: 09
ജനിച്ച വർഷം: 1980

ഉപസംഹാരം

പതിവ് പദപ്രയോഗങ്ങളുടെ എല്ലാ കഴിവുകളും ആനന്ദങ്ങളും ലേഖനം കാണിക്കുന്നില്ല; ഈ പ്രശ്നത്തിന്റെ ആഴത്തിലുള്ള പഠനത്തിനായി, RegExp ഒബ്ജക്റ്റ് പഠിക്കാൻ ഞാൻ നിങ്ങളെ ഉപദേശിക്കുന്നു. ജാവാസ്ക്രിപ്റ്റിലും പിഎച്ച്പിയിലും റെഗുലർ എക്സ്പ്രഷനുകളുടെ വാക്യഘടന വ്യത്യസ്തമല്ല എന്ന വസ്തുതയിലേക്ക് നിങ്ങളുടെ ശ്രദ്ധ ആകർഷിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ഇ-മെയിൽ ശരിയായി നൽകിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ, JavaScript, PHP എന്നിവയ്‌ക്കുള്ള പതിവ് എക്‌സ്‌പ്രഷൻ ഒരേപോലെ കാണപ്പെടും /+@+.(2,3)/i .

JavaScript-ലെ RegExp ക്ലാസ് ഒരു സാധാരണ പദപ്രയോഗമാണ് - ഒരു പ്രതീക പാറ്റേൺ വിവരിക്കുന്ന ഒരു വസ്തു. RegExp ഒബ്‌ജക്റ്റുകൾ സാധാരണയായി ചുവടെ അവതരിപ്പിച്ചിരിക്കുന്ന പ്രത്യേക ലിറ്ററൽ വാക്യഘടന ഉപയോഗിച്ചാണ് സൃഷ്‌ടിക്കുന്നത്, പക്ഷേ RegExp() കൺസ്‌ട്രക്‌റ്റർ ഉപയോഗിച്ചും സൃഷ്‌ടിക്കാനാകും.

വാക്യഘടന // പ്രത്യേക ലിറ്ററൽ വാക്യഘടന ഉപയോഗിച്ച് var regex = /pattern /flags ; // കൺസ്ട്രക്റ്റർ var regex = പുതിയ RegExp ("പാറ്റേൺ ", "ഫ്ലാഗുകൾ") ഉപയോഗിച്ച്; var regex = പുതിയ RegExp(/പാറ്റേൺ /, "ഫ്ലാഗുകൾ");

പാരാമീറ്റർ മൂല്യങ്ങൾ:

പതിവ് എക്സ്പ്രഷൻ ഫ്ലാഗുകൾ പതാക വിവരണം
ജിആദ്യ മത്സരത്തിന് ശേഷം നിർത്തുന്നതിന് പകരം എല്ലാ പൊരുത്തങ്ങളും കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു ( ആഗോള മത്സര പതാക).
കേസ്-ഇൻസെൻസിറ്റീവ് പൊരുത്തപ്പെടുത്തൽ അനുവദിക്കുന്നു ( കേസ് ഫ്ലാഗ് അവഗണിക്കുക).
എംഒന്നിലധികം വരികളിലായാണ് പൊരുത്തപ്പെടുത്തൽ നടത്തുന്നത്. മുൻനിരയിലുള്ളതും പിന്നിൽ നിൽക്കുന്നതുമായ പ്രതീകങ്ങൾ (^ ഒപ്പം $) ഒന്നിലധികം വരികളിലായി പ്രോസസ്സ് ചെയ്യപ്പെടുന്നു, അതായത്, ഓരോ വരിയുടെയും (ഡിലിമിറ്ററുകൾ \n അല്ലെങ്കിൽ \r) പൊരുത്തം സംഭവിക്കുന്നത്, മുഴുവൻ വരിയുടെയും തുടക്കത്തിലോ അവസാനത്തിലോ മാത്രമല്ല ( മൾട്ടിലൈൻ പതാക).
യുപാറ്റേൺ യൂണിക്കോഡ് കോഡ് പോയിന്റുകളുടെ ഒരു ശ്രേണിയായി വ്യാഖ്യാനിക്കപ്പെടും ( യൂണികോഡ് പതാക).
വൈഈ റെഗുലർ എക്‌സ്‌പ്രഷന്റെ അവസാന ഇൻഡക്‌സ് പ്രോപ്പർട്ടി ചൂണ്ടിക്കാണിച്ചിരിക്കുന്ന സൂചികയിലാണ് പൊരുത്തം സംഭവിക്കുന്നത്, എന്നാൽ പിന്നീട് അല്ലെങ്കിൽ മുമ്പത്തെ സൂചികയിൽ പൊരുത്തപ്പെടുത്തൽ നടത്തില്ല ( ഒട്ടിപ്പിടിച്ച പതാക).
പ്രതീകം മെറ്റാക്യാരാക്‌ടറുകൾ സജ്ജമാക്കുന്നു ചിഹ്ന വിവരണം
. പ്രതീകം അല്ലാതെ മറ്റൊരു പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു പുതിയ വര, അല്ലെങ്കിൽ വരിയുടെ അവസാനം (\n, \r, \u2028 അല്ലെങ്കിൽ \u2029).
\dഅടിസ്ഥാന ലാറ്റിൻ അക്ഷരമാലയിൽ ഒരു സംഖ്യ ചിഹ്നം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രതീക സെറ്റ് ഉപയോഗിക്കുന്നതിന് തുല്യമാണ്.
\Dഅടിസ്ഥാന ലാറ്റിൻ അക്ഷരമാലയിൽ ഒരു സംഖ്യയല്ലാത്ത ഏത് പ്രതീകവും കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രതീക ഗണത്തിന് [^0-9] തുല്യം.
\sഒരൊറ്റ വൈറ്റ്‌സ്‌പെയ്‌സ് പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. സ്പേസ്, ടാബ്, പേജ് ഫീഡ്, ലൈൻ ഫീഡ് എന്നിവയും മറ്റുള്ളവയുമാണ് വൈറ്റ്‌സ്‌പേസ് പ്രതീകം അർത്ഥമാക്കുന്നത്. വൈറ്റ്‌സ്‌പേസ് പ്രതീകങ്ങൾയൂണികോഡ്. പ്രതീക ഗണത്തിന് തുല്യം [\f\n\r\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u20089 u200a \u2028\u2029\u202f\u205f\u3000].
\Sവൈറ്റ്‌സ്‌പെയ്‌സ് അല്ലാത്ത ഒരു പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. സ്പേസ്, ടാബ്, പേജ്ഫീഡ്, ലൈൻഫീഡ്, മറ്റ് യൂണികോഡ് വൈറ്റ്സ്പേസ് പ്രതീകങ്ങൾ എന്നിവയെ വൈറ്റ്സ്പേസ് സൂചിപ്പിക്കുന്നു. പ്രതീക സെറ്റിന് തുല്യം [^ \f\n\r\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2009\u2009 \u200a  \u2028\u2029\u202f\u205f\u3000].
[\b]ബാക്ക്‌സ്‌പേസ് പ്രതീകം (പ്രത്യേക പ്രതീകം \b, U+0008) കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\0 0 (പൂജ്യം) എന്ന ചിഹ്നം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\nപുതിയ ലൈൻ പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\fപേജ് ഫീഡ് പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\rക്യാരേജ് റിട്ടേൺ പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\tതിരശ്ചീന ടാബ് പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\vലംബ ടാബ് പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
\wഅടിസ്ഥാന ലാറ്റിൻ അക്ഷരമാലയിൽ അടിവരയിട്ടതുൾപ്പെടെ ഏതെങ്കിലും ആൽഫാന്യൂമെറിക് പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രതീക സെറ്റിന് തുല്യമാണ്.
\Wഅടിസ്ഥാന ലാറ്റിൻ അക്ഷരമാലയിൽ നിന്നുള്ള പ്രതീകമല്ലാത്ത ഏത് പ്രതീകവും കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. [^a-Za-z0-9_] പ്രതീക ഗണത്തിന് തുല്യം.
\cXഒരു സ്ട്രിംഗിൽ ഒരു നിയന്ത്രണ പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇവിടെ X എന്നത് A മുതൽ Z വരെയുള്ള അക്ഷരമാണ്. ഉദാഹരണത്തിന്, /\cM/ എന്നത് Ctrl-M പ്രതീകത്തെ പ്രതിനിധീകരിക്കുന്നു.
\xhhഉപയോഗിച്ച് ഒരു ചിഹ്നം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു ഹെക്സാഡെസിമൽ മൂല്യം(hh എന്നത് രണ്ട് അക്ക ഹെക്‌സാഡെസിമൽ മൂല്യമാണ്).
\uhhhhUTF-16 എൻകോഡിംഗ് ഉപയോഗിച്ച് ഒരു പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു (hhhh എന്നത് നാല് അക്ക ഹെക്സാഡെസിമൽ മൂല്യമാണ്).
\u(hhh) അല്ലെങ്കിൽ
\u(hhhhh)
U+hhh അല്ലെങ്കിൽ U+hhhhh (ഹെക്സാഡെസിമൽ മൂല്യം) യുണിക്കോഡ് മൂല്യമുള്ള ഒരു പ്രതീകം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. യു പതാക നൽകുമ്പോൾ മാത്രം.
\ ഇനിപ്പറയുന്ന പ്രതീകം പ്രത്യേകമാണെന്നും അക്ഷരാർത്ഥത്തിൽ വ്യാഖ്യാനിക്കാൻ പാടില്ലെന്നും സൂചിപ്പിക്കുന്നു. സാധാരണയായി ഒരു പ്രത്യേക രീതിയിൽ വ്യാഖ്യാനിക്കുന്ന പ്രതീകങ്ങൾക്ക്, ഇനിപ്പറയുന്ന പ്രതീകം പ്രത്യേകമല്ലെന്നും അക്ഷരാർത്ഥത്തിൽ വ്യാഖ്യാനിക്കണമെന്നും വ്യക്തമാക്കുന്നു.
നിയന്ത്രണങ്ങൾ ക്വാണ്ടിഫയറുകൾ ചിഹ്ന വിവരണം
n*പ്രതീകത്തിന്റെ പൂജ്യമോ അതിലധികമോ സംഭവങ്ങൾ അടങ്ങിയ ഏതെങ്കിലും സ്‌ട്രിംഗിലാണ് പൊരുത്തം സംഭവിക്കുന്നത് എൻ.
n+കുറഞ്ഞത് ഒരു പ്രതീകമെങ്കിലും അടങ്ങിയിരിക്കുന്ന ഏതെങ്കിലും സ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടൽ സംഭവിക്കുന്നു എൻ.
n?മുമ്പത്തെ ഘടകമുള്ള ഏത് സ്ട്രിംഗിലും പൊരുത്തം സംഭവിക്കുന്നു എൻപൂജ്യം അല്ലെങ്കിൽ ഒരു തവണ.
n(x)പ്രതീകങ്ങളുടെ ഒരു ശ്രേണി അടങ്ങിയിരിക്കുന്ന ഏത് സ്‌ട്രിംഗുമായും പൊരുത്തപ്പെടുന്നു എൻഒരു നിശ്ചിത എണ്ണം തവണ x. എക്സ്
n(x,) xമുമ്പത്തെ മൂലകത്തിന്റെ സംഭവങ്ങൾ എൻ. എക്സ്ഒരു പോസിറ്റീവ് പൂർണ്ണസംഖ്യ ആയിരിക്കണം.
n(x, y)കുറഞ്ഞത് അടങ്ങിയിരിക്കുന്ന ഏതെങ്കിലും സ്‌ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു x, എന്നാൽ കൂടെ അധികം ഇല്ല വൈമുമ്പത്തെ മൂലകത്തിന്റെ സംഭവങ്ങൾ എൻ. എക്സ്ഒപ്പം വൈപോസിറ്റീവ് പൂർണ്ണസംഖ്യകളായിരിക്കണം.
n*?
n+?
n??
n(x)?
n(x,)?
n(x,y)?
*, +, ? കൂടാതെ (...), എന്നിരുന്നാലും അതേ സമയം തിരച്ചിൽ നടക്കുന്നുസാധ്യമായ ഏറ്റവും കുറഞ്ഞ താരതമ്യം. ഡിഫോൾട്ട് "കൊതി" മോഡ്, ? ക്വാണ്ടിഫയറിന്റെ അവസാനം, "അത്യാഗ്രഹമില്ലാത്ത" മോഡ് സജ്ജമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അതിൽ താരതമ്യം സാധ്യമായ ഏറ്റവും കുറഞ്ഞ തവണ ആവർത്തിക്കുന്നു.
x(?=y)താരതമ്യം ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു x, എങ്കിൽ മാത്രം xവേണം വൈ.
x(?!y)താരതമ്യം ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു x, എങ്കിൽ മാത്രം xഅത് ചെയ്യരുത് വൈ.
x|yഏതെങ്കിലും നിർദ്ദിഷ്ട ഇതരമാർഗങ്ങളുമായി താരതമ്യം സംഭവിക്കുന്നു.
ഗ്രൂപ്പിംഗും ബാക്ക്‌ലിങ്കുകളും ചിഹ്ന വിവരണം
(x)ഒരു ചിഹ്നം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു xതാരതമ്യത്തിന്റെ ഫലം ഓർക്കുക ("പരാന്തീസിസ് പിടിച്ചെടുക്കൽ"). തത്ഫലമായുണ്ടാകുന്ന അറേ എലമെന്റുകളിൽ നിന്നും ..., [n], അല്ലെങ്കിൽ മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള RegExp ഒബ്‌ജക്‌റ്റ് $1 ..., $9 ന്റെ ഗുണങ്ങളിൽ നിന്നും പൊരുത്തപ്പെടുന്ന സബ്‌സ്‌ട്രിംഗിനെ വിളിക്കാം.
(?:x)ഒരു ചിഹ്നം കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു x, എന്നാൽ മത്സരത്തിന്റെ ഫലം ഓർക്കുന്നില്ല ("നോൺ-ക്യാപ്ചറിംഗ് പരാൻതീസിസ്"). തത്ഫലമായുണ്ടാകുന്ന അറേ ഘടകങ്ങളിൽ നിന്നും ..., [n], അല്ലെങ്കിൽ മുൻകൂട്ടി നിശ്ചയിച്ചിട്ടുള്ള RegExp ഒബ്‌ജക്റ്റ് $1 ..., $9 ന്റെ ഗുണങ്ങളിൽ നിന്നും പൊരുത്തപ്പെടുന്ന സബ്‌സ്‌ട്രിംഗിനെ വിളിക്കാൻ കഴിയില്ല.
\nഒരു സാധാരണ എക്‌സ്‌പ്രഷനിലെ പരാൻതീസിസിലെ n-ആമത്തേതുമായി പൊരുത്തപ്പെടുന്ന അവസാന സബ്‌സ്‌ട്രിംഗിലേക്കുള്ള ഒരു റിട്ടേൺ റഫറൻസ് (പരാന്തീസിസുകളുടെ എണ്ണം ഇടത്തുനിന്ന് വലത്തോട്ട് പോകുന്നു). എൻഒരു പോസിറ്റീവ് പൂർണ്ണസംഖ്യ ആയിരിക്കണം.