முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 6 · பாடம் 3 இன் 4பாடத்திட்டத்தில் 23/32~12 min
தொகுதி பாடங்கள் (3/4)

பின்னால் பாருங்கள்: `(?<=...)` `(?<!...)`

லுக்பின்கள் என்பது லுக்ஹெட்களின் கண்ணாடிப் படம்: அவை முன் தற்போதைய நிலை, இன்னும் பூஜ்ஜிய அகலம்.

  • (?<=...) -- பாசிட்டிவ் லுக் பிஹைண்ட்: பேட்டர்ன் முன்னதாக இருக்க வேண்டும்.
  • (?<!...) -- எதிர்மறை தோற்றம்: பேட்டர்ன் முன் இருக்கக்கூடாது.
Code
Pattern: (?<=\$)\d+
Sample:  Costo $100, sconto -25, totale $75.
                ^^^                  ^^

$ போட்டியில் இல்லை, ஆனால் நிலை: இலக்கங்கள் மட்டுமே முன் டாலர் குறிப் பொருத்தம்.

எதிர்மறையான தோற்றம்

Code
Pattern: (?<!\w)\d+
Sample:  Codice abc123 e numero 456.
                              ^^^

(?<!\w) இலக்கங்களுக்கு முன் எந்த வார்த்தை எழுத்தும் இருக்கக்கூடாது: abc123 விலக்கப்பட்டது (123க்கு முன் c உள்ளது, ஒரு \w), 456 போட்டிகள் (முன்பு ஒரு இடம் உள்ளது).

கேப்சரிங் அல்லாத குழுவிற்கு எதிராக முக்கிய வேறுபாடு

Code
\\$\\d+         matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+    matches "100":  the match contains ONLY the digits.

முன்னொட்டு இல்லாமல் "சுத்தமான" மதிப்பைப் பிரித்தெடுக்க வேண்டும் என்றால், பின்னால் பாருங்கள் சரியான தேர்வாகும்.

ஜாவாஸ்கிரிப்டில் லுக் பிஹைண்ட் இணக்கத்தன்மை

நேர்மறை (?<=...) மற்றும் எதிர்மறை (?<!...) லுக் பிஹைண்ட் தற்போதைய நிலைக்கு முந்தையதைச் சரிபார்க்கவும். ஜாவாஸ்கிரிப்ட்டில், அவை ES2018 முதல் ஆதரிக்கப்படுகின்றன; பழைய உலாவிகள் அல்லது மரபு Node.js இன்ஜின்களில், அவை தொடரியல் தொகுப்பு பிழைகளை ஏற்படுத்தும்.

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#regex.m6.l3.e1
முயற்சிகள்: 0ஏற்றுகிறது…

உரையில் உள்ள விலைகளில் இருந்து எண் அளவு ($ அடையாளம் இல்லாமல்) மட்டும் பிரித்தெடுக்கவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

ஒரு நேர்மறை தோற்றத்தின் உள்ளே \\$ நகர்த்தவும் (?<=\\$): ஒரு நிலை நிலை, போட்டியின் ஒரு பகுதி அல்ல.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#regex.m6.l3.e2
முயற்சிகள்: 0ஏற்றுகிறது…

ஒரு எழுத்து அல்லது இலக்கத்திற்கு முன் இல்லாத இலக்கங்களின் ஒவ்வொரு வரிசையையும் கண்டறியவும் (அதாவது, 'தனிப்படுத்தப்பட்ட' எண்கள், `abc123` போன்ற குறியீட்டின் பகுதிகள் அல்ல).

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

இதற்கு முன் ஒரு எழுத்து அல்லது இலக்கம் இருக்கும் போது விலக்க, எதிர்மறையான தோற்றத்தை (?<!\\w) பயன்படுத்தவும்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

கூடுதல் சவால்

உடற்பயிற்சி#regex.m6.l3.e3
முயற்சிகள்: 0ஏற்றுகிறது…

Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

மைனஸ் அடையாளத்தை நகர்த்தவும் - உள்ளே ஒரு நேர்மறை தோற்றம் பின்னால் (?<=-).

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்