Το προφίλ μας στο Google Plus
0

Οι πανίσχυρες κανονικές εκφράσεις [μέρος 2]

Με τις γνώσεις που αποκτήσαμε στο προηγούμενο άρθρο, στο deltaHacker 021, μπορούμε τώρα να περιγράψουμε σχεδόν οτιδήποτε. Όμως για ένα μεγάλο μέρος απ’ αυτό το “οτιδήποτε” θα πρέπει να συντάξουμε τεράστιες εκφράσεις. Σ’ αυτό το άρθρο θα μελετήσουμε ορισμένες όψεις των regular expressions οι οποίες επιτρέπουν τη σύνταξη (ακόμα) πιο αφηρημένων εκφράσεων. Με τη βοήθειά τους θα μπορούμε να περιγράφουμε πιο σύνθετα strings, με συντομότερες εκφράσεις!

deltaHacker 022 (τεύχος Ιουλίου 2013) | Οι πανίσχυρες κανονικές εκφράσεις [μέρος 2]

Στο προηγούμενο τεύχος μιλήσαμε για τη φύση και την αποστολή των κανονικών εκφράσεων. Επιπρόσθετα, τονίσαμε ότι υπάρχουν πολλές διάλεκτοι με αρκετές διαφορές, τόσο στη σύνταξη όσο και στην εκφραστική δύναμη. Ακολούθως, αφού ξεκαθαρίσαμε με ποιες διαλέκτους θα ασχοληθούμε και γιατί, ξεκινήσαμε τη γνωριμία με τα συντακτικά σχήματα που συγκροτούν μια κανονική έκφραση. Αναφερθήκαμε συγκεκριμένα στις κλάσεις χαρακτήρων, στις ανεστραμμένες (συμπληρωματικές) κλάσεις, στο λεγόμενο escaping, στον χαρακτήρα μπαλαντέρ και στους χαρακτήρες που περιγράφουν μία ή περισσότερες επαναλήψεις. Τελειώνοντας το προηγούμενο άρθρο, ενδέχεται να νιώσατε ότι είστε έτοιμοι να ξεθάψετε οτιδήποτε κι από οπουδήποτε — αρκεί να σχηματίσετε την κατάλληλη κανονική έκφραση. Η αλήθεια είναι ότι αυτό δεν απέχει από την πραγματικότητα! Ωστόσο, το οπλοστάσιο των κανονικών εκφράσεων περιλαμβάνει αρκετές ακόμα δυνατότητες, οι οποίες μπορούν να απλοποιήσουν την αναζήτηση πολύπλοκων strings σε μεγάλο βαθμό. Σε αυτό το άρθρο θα γνωρίσουμε ορισμένες από αυτές τις δυνατότητες.

Σημεία αναφοράς
Οι ειδικοί χαρακτήρες που έχουμε μελετήσει μέχρι στιγμής περιγράφουν γράμματα, σύμβολα και αριθμητικά ψηφία — ένα ή περισσότερα, γνωστού ή αγνώστου πλήθους. Τώρα θα μιλήσουμε για μερικούς ειδικούς χαρακτήρες οι οποίοι προσδιορίζουν τη θέση, χωρίς να περιγράφουν το περιεχόμενο! Αναφερόμαστε στα λεγόμενα anchors.

Σε αυτή την κατηγορία ανήκουν δύο χαρακτήρες που συμβολίζουν την αρχή και το τέλος *ολόκληρου* του string που δίνουμε στη μηχανή κανονικών εκφράσεων. Εδώ όμως πρέπει να ξεκαθαρίσουμε κάτι: Η μηχανή του grep “διασπά” το εκάστοτε string σε γραμμές κι επεξεργάζεται την καθεμία ξεχωριστά. Ως εκ τούτου, στην περίπτωση του grep οι εν λόγω χαρακτήρες συμβολίζουν την αρχή και το τέλος κάθε γραμμής. Λεπτομέρεια, θα σκεφτείτε, αλλά κάτι τέτοιες λεπτομέρειες μπορούν εύκολα να προκαλέσουν πονοκέφαλο. Στην κατηγορία των anchors ανήκει κι ένας χαρακτήρας που αναφέρεται στην αρχή και στο τέλος των λέξεων. Ας τους εξετάσουμε λίγο πιο αναλυτικά…

Διαβάστε ολόκληρο το άρθρο στο deltaHacker 022 (τεύχος Ιουλίου 2013).

Το μηνιαίο περιοδικό deltaHacker είναι πλέον ηλεκτρονικό! Μάθετε για τις νέες, απίστευτες τιμές και κάντε τώρα την παραγγελία σας συμπληρώνοντας τη σχετική φόρμα.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων