⊗jsSpREEP 129 of 294 menu

Τσέπια στην ίδια την κανονική έκφραση στο JavaScript

Το περιεχόμενο των τσεπιών δεν είναι προσβάσιμο μόνο στην γραμμή αντικατάστασης, αλλά και στην ίδια την κανονική έκφραση: μπορούμε να βάλουμε κάτι σε ένα τσέπι, και στη συνέχεια ακριβώς στην κανονική έκφραση να πούμε ότι εδώ πρέπει να βρίσκεται το περιεχόμενο αυτού του τσεπιού.

Το περιεχόμενο των τσεπιών είναι προσβάσιμο με τους αριθμούς τους, μπροστά από τους οποίους υπάρχει μια ανάστροφη πλάγια γραμμή. Για παράδειγμα, το πρώτο τσέπι θα είναι προσβάσιμο έτσι: \1, το δεύτερο τσέπι έτσι - \2, το τρίτο - \3 και ούτω καθεξής.

Είμαι βέβαιος ότι όλα όσα γράφτηκαν παραπάνω είναι μάλλον αρκετά θολά για εσάς. Αυτό δεν προκαλεί έκπληξη, αφού τα τσέπια είναι το πιο δυσνόητο σημείο των κανονικών εκφράσεων. Ας τα καταλάβουμε με παραδείγματα.

Παράδειγμα

Ας υποθέσουμε ότι έχουμε την ακόλουθη συμβολοσειρά:

let str = 'aa bb cd ef';

Ας βρούμε σε αυτήν όλα τα σημεία στα οποία υπάρχουν δύο όποιες ίδια γράμματα στη σειρά. Για την επίλυση του προβλήματος θα ψάξουμε για οποιοδήποτε γράμμα, θα το βάζουμε σε ένα τσέπι, και στη συνέχεια θα ελέγχουμε αν το επόμενο σύμβολο είναι το περιεχόμενο αυτού του τσεπιού:

let res = str.replace(/([a-z])\1/g, '!');

Ως αποτέλεσμα, στη μεταβλητή θα γραφεί το ακόλουθο:

'! ! cd ef'

Παράδειγμα

Ας υποθέσουμε ότι έχουμε την ακόλουθη συμβολοσειρά:

let str = 'asxca buzxb csgd';

Ας βρούμε σε αυτήν όλες τις λέξεις στις οποίες το πρώτο και το τελευταίο γράμμα είναι τα ίδια. Για την επίλυση του προβλήματος θα γράψουμε το ακόλουθο μοτίβο: γράμμα, έπειτα ένα ή περισσότερα γράμματα, και στη συνέχεια το ίδιο γράμμα με το πρώτο:

let res = str.replace(/([a-z])[a-z]+\1/g, '!');

Ως αποτέλεσμα, στη μεταβλητή θα γραφεί το ακόλουθο:

'! ! csgd'

Πρακτικά προβλήματα

Δίνεται η συμβολοσειρά:

let str = 'aaa bbb ccc xyz';

Βρείτε όλες τις υποσυμβολοσειρές στις οποίες υπάρχουν τρία ίδια γράμματα στη σειρά.

Δίνεται η συμβολοσειρά:

let str = 'a aa aaa aaaa aaaaa';

Βρείτε όλες τις υποσυμβολοσειρές στις οποίες υπάρχουν δύο ή περισσότερα ίδια γράμματα στη σειρά.

Δίνεται η συμβολοσειρά:

let str = 'aaa aaa bbb bbb ccc ddd';

Βρείτε όλες τις υποσυμβολοσειρές στις οποίες υπάρχουν δύο ίδιες λέξεις στη σειρά.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη