Συναρτήσεις IsMatch, Match και MatchAll
Ισχύει σε: Εφαρμογές καμβά Εφαρμογές βάσει μοντέλου Power Pages Power Platform CLI
Δοκιμές για ταίριασμα ή εξάγει τμήματα μιας συμβολοσειράς κειμένου με βάση ένα μοτίβο.
Περιγραφή
Η συνάρτηση IsMatch ελέγχει εάν μια συμβολοσειρά κειμένου αντιστοιχεί ένα μοτίβο που μπορεί να περιλαμβάνει συνήθεις χαρακτήρες, προκαθορισμένα μοτίβα ή μια κανονική παράσταση. Οι συναρτήσεις Match και MatchAll επιστρέφουν ό,τι αντιστοιχίστηκε, συμπεριλαμβανομένων των δευτερευόντων αντιστοιχίσεων.
Χρησιμοποιήστε τη συνάρτηση IsMatch για την επικύρωση αυτού που έχει πληκτρολογήσει ένας χρήστης σε ένα στοιχείο ελέγχου Text input. Για παράδειγμα, μπορείτε να επιβεβαιώσετε εάν ο χρήστης έχει εισαγάγει μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου πριν από την αποθήκευση του αποτελέσματος στην προέλευση δεδομένων. Εάν η καταχώρηση δεν συμφωνεί με τα κριτήριά σας, προσθέστε άλλα στοιχεία ελέγχου που ζητούν από τον χρήστη να διορθώσει την καταχώρηση.
Χρησιμοποιήστε τη συνάρτηση Match για να εξαγάγετε την πρώτη συμβολοσειρά κειμένου που ταιριάζει με ένα μοτίβο και τη συνάρτηση MatchAll για να εξαγάγετε όλες τις συμβολοσειρές κειμένου που ταιριάζουν. Επίσης, μπορείτε να εξαγάγετε δευτερεύουσες αντιστοιχίσεις για την ανάλυση σύνθετων συμβολοσειρών.
Η συνάρτηση Match επιστρέφει μια καρτέλα πληροφοριών για την πρώτη αντιστοίχιση που βρέθηκε και η συνάρτηση MatchAll αποδίδει έναν πίνακα καρτελών για κάθε αντιστοίχιση που βρέθηκε. Η καρτέλα ή οι καρτέλες περιέχουν:
Column | Type | Description |
---|---|---|
επώνυμη υπο-αντιστοίχιση ή υπο-αντιστοιχίσεις | Μήνυμα κειμένου | Κάθε επώνυμη δευτερεύουσα αντιστοίχιση θα έχει τη δική της στήλη. Δημιουργήσετε μια επώνυμη αντιστοίχιση χρησιμοποιώντας το (?<name>...) στην κανονική παράσταση. Εάν μια επώνυμη αντιστοίχιση έχει το ίδιο όνομα με μία από τις προκαθορισμένες στήλες (παρακάτω), η επώνυμη αντιστοίχιση έχει προτεραιότητα και δημιουργείται μια προειδοποίηση. Για να αποφύγετε αυτήν την προειδοποίηση, μετονομάστε την επώνυμη αντιστοίχιση. |
FullMatch | Κείμενο | Όλες τις συμβολοσειρές κειμένου που αντιστοιχίστηκαν. |
StartMatch | Αριθμός | Η θέση εκκίνησης της αντιστοίχισης εντός της συμβολοσειράς εισαγωγής κειμένου. Ο πρώτος χαρακτήρας της συμβολοσειράς επιστρέφει 1. |
SubMatches | Πίνακας κειμένου μίας στήλης (στήλη Τιμή) | Ο πίνακας με τις επώνυμες και τις μη επώνυμες αντιστοιχίσεις με τη σειρά με την οποία εμφανίζονται στην κανονική παράσταση. Γενικά, η εργασία με επώνυμες δευτερεύουσες αντιστοιχίσεις είναι ευκολότερη και ενθαρρύνεται. Χρησιμοποιήστε η συνάρτηση ForAll ή τις συναρτήσεις Last( FirstN( ... ) ) για να εργαστείτε με μια μεμονωμένη δευτερεύουσα αντιστοίχιση. Εάν δεν έχουν καθοριστεί δευτερεύουσες αντιστοιχίσεις στην κανονική παράσταση, αυτός ο πίνακας θα είναι παρών, αλλά κενός. |
Αυτές οι συναρτήσεις υποστηρίζουν MatchOptions. Από προεπιλογή:
- Αυτές οι συναρτήσεις εκτελούν μια αντιστοίχιση με διάκριση πεζών-κεφαλαίων. Χρησιμοποιήστε το MatchOptions.IgnoreCase για να εκτελέσετε αντιστοιχίσεις με διάκριση πεζών-κεφαλαίων.
- Η συνάρτηση IsMatch αντιστοιχεί σε ολόκληρη συμβολοσειρά κειμένου (Complete MatchOption), ενώ οι συναρτήσεις Match και MatchAll αναζητούν μια αντιστοίχιση οπουδήποτε στη συμβολοσειρά κειμένου (Contains MatchOption). Χρησιμοποιήστε τις συναρτήσεις Complete, Contains, BeginsWith ή EndsWith ανάλογα με το σενάριό σας.
Η συνάρτηση IsMatch επιστρέφει την τιμή true εάν η συμβολοσειρά κειμένου συμφωνεί με το μοτίβο ή την τιμή false εάν όχι. Η συνάρτηση Match επιστρέφει κενό εάν δεν βρεθεί αντιστοίχιση που μπορεί να ελεγχθεί με τη συνάρτηση IsBlank. Η συνάρτηση MatchAll επιστρέφει έναν άδειο πίνακα εάν δεν βρεθεί αντιστοίχιση που μπορεί να ελεγχθεί με τη συνάρτηση IsEmpty.
Εάν χρησιμοποιείτε το MatchAll για να χωρίσετε μια συμβολοσειρά κειμένου, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε τη συνάρτηση Split, η οποία είναι πιο απλή στη χρήση και πιο γρήγορη.
Μοτίβα
Το κλειδί στη χρήση αυτών των συναρτήσεων βρίσκεται στην περιγραφή του μοτίβου για συμφωνία. Περιγράψτε το μοτίβο σε μια συμβολοσειρά κειμένου ως συνδυασμό των εξής:
- Συνήθεις χαρακτήρες, όπως "abc" or "123".
- Προκαθορισμένα μοτίβα, όπωςLetter, MultipleDigits ή Email. (Η απαρίθμηση της Match ορίζει αυτά τα μοτίβα.)
- Κώδικες κανονικών παραστάσεων, όπως "\d+\s+\d+" ή "[a-z]+".
Συνδυάστε αυτά τα στοιχεία, χρησιμοποιώντας τον τελεστή συνένωσης συμβολοσειρών &. Για παράδειγμα, το μοτίβο "abc" & Digit & "\s+" είναι ένα έγκυρο μοτίβο που συμφωνεί με τους χαρακτήρες "a", "b" και "c", ακολουθούμενους από ένα ψηφίο από 0 έως 9, ακολουθούμενο από τουλάχιστον έναν χαρακτήρα κενού διαστήματος.
Συνήθεις χαρακτήρες
Το απλούστερο μοτίβο είναι μια ακολουθία συνήθων χαρακτήρων για επακριβή συμφωνία.
Για παράδειγμα, όταν χρησιμοποιείται με τη συνάρτηση IsMatch, η συμβολοσειρά "Hello" ταιριάζει ακριβώς με το μοτίβο "Hello". Ούτε περισσότερα ούτε λιγότερα. Η συμβολοσειρά "γεια σας!" δεν συμφωνεί με το μοτίβο επειδή υπάρχει το θαυμαστικό στο τέλος και επειδή το γράμμα "h" είναι πεζό αντί για κεφαλαίο. (Ανατρέξτε στην ενότητα MatchOptions για τρόπους για να τροποποιήσετε αυτή τη συμπεριφορά.)
Στη γλώσσα μοτίβων, ορισμένοι χαρακτήρες έχουν δεσμευτεί για ειδικούς σκοπούς. Για να χρησιμοποιήσετε αυτούς τους χαρακτήρες, είτε προσθέστε πριν από τον χαρακτήρα μια \ (ανάστροφη κάθετος) για να υποδείξετε ότι ο χαρακτήρας θα πρέπει να εκληφθεί κυριολεκτικά είτε χρησιμοποιήστε ένα από τα προκαθορισμένα μοτίβα που περιγράφονται πιο κάτω σε αυτό το θέμα. Αυτός ο πίνακας παραθέτει τους ειδικούς χαρακτήρες:
Ειδικός χαρακτήρας | Περιγραφή |
---|---|
. | τελεία ή τελεία |
; | ερωτηματικό |
* | αστερίσκος |
+ | συν |
( ) | παρενθέσεις |
[ ] | αγκύλες |
{ } | άγκυστρα |
^ | καρέ |
$ | σύμβολο δολαρίου |
| | κάθετη γραμμή |
\ | ανάστροφη κάθετος |
Για παράδειγμα, μπορείτε να ταιριάζει με το "Γεια σας;" χρησιμοποιώντας το μοτίβο "Γεια σας\;" με κάθετο προς τα πίσω πριν από το ερωτηματικό.
Προκαθορισμένα μοτίβα
Τα προκαθορισμένα μοτίβα παρέχουν έναν απλό τρόπο ώστε να αντιστοιχίσετε είτε ένα σύνολο χαρακτήρων είτε μια ακολουθία πολλών χαρακτήρων. Χρησιμοποιήστε τον τελεστή συνένωσης συμβολοσειρών & για να συνδυάσετε τις δικές σας συμβολοσειρές κειμένου με τα μέλη της απαρίθμησης της συνάρτησης Match:
Απαρίθμηση Match | Περιγραφή | Τακτική παράσταση |
---|---|---|
Any | Αντιστοίχιση με οποιονδήποτε χαρακτήρα. | . |
Comma | Αντιστοίχιση με ένα κόμμα. | , |
Digit | Αντιστοίχιση με ένα μόνο ψηφίο ("0" έως "9"). | \d |
Διεύθυνση ηλεκτρονικού ταχυδρομείου | Αντιστοίχιση με μια διεύθυνση ηλεκτρονικού ταχυδρομείου που περιέχει ένα σύμβολο ("@") και ένα όνομα τομέα που περιέχει μια τελεία (".") | .+\@.+\\.[^\\.]{2,} |
Hyphen | Αντιστοίχιση με ένα ενωτικό. | \- |
LeftParen | Αντιστοίχιση με μια αριστερή παρένθεση "(". | \( |
Letter | Αντιστοίχιση με ένα γράμμα. | \p{L} |
MultipleDigits | Αντιστοίχιση με ένα ή περισσότερα ψηφία. | \d+ |
MultipleLetters | Αντιστοίχιση με ένα ή περισσότερα γράμματα. | \p{L}+ |
MultipleNonSpaces | Αντιστοιχεί έναν ή περισσότερους χαρακτήρες που δεν προσθέτουν κενά διαστήματα (όχι διάστημα, χαρακτήρα tab ή χαρακτήρα αλλαγής γραμμής). | \S+ |
MultipleSpaces | Αντιστοιχεί έναν ή περισσότερους χαρακτήρες που προσθέτουν κενά διαστήματα (διάστημα, χαρακτήρα tab ή χαρακτήρα αλλαγής γραμμής). | \s+ |
NonSpace | Αντιστοιχεί έναν μόνο χαρακτήρα που δεν προσθέτει κενό διάστημα. | \S |
OptionalDigits | Αντιστοιχεί κανένα, ένα ή περισσότερα ψηφία. | \d* |
OptionalLetters | Αντιστοιχεί κανένα, ένα ή περισσότερα γράμματα. | \p{L}* |
OptionalNonSpaces | Συμφωνεί με κανέναν, έναν ή περισσότερους χαρακτήρες που δεν προσθέτουν κενό διάστημα. | \S* |
OptionalSpaces | Συμφωνεί με κανέναν, έναν ή περισσότερους χαρακτήρες που προσθέτουν κενό διάστημα. | \s* |
Period | Αντιστοίχιση με μια τελεία ή κουκκίδα ("."). | \. |
RightParen | Αντιστοίχιση με μια δεξιά παρένθεση ")". | \) |
Space | Αντιστοίχιση με έναν χαρακτήρα που προσθέτει κενό διάστημα. | \s |
Καρτέλα | Αντιστοίχιση με χαρακτήρα καρτέλας. | \t |
Για παράδειγμα, το μοτίβο "A" & MultipleDigits θα αντιστοιχίσει το γράμμα "A", ακολουθούμενο από ένα ή περισσότερα ψηφία.
Κανονικές παραστάσεις
Το μοτίβο που χρησιμοποιούν αυτές οι συναρτήσεις είναι μια κανονική παράσταση. Οι συνήθεις χαρακτήρες και προκαθορισμένα μοτίβα που περιγράφονται παραπάνω σε αυτό το θέμα βοηθούν στη δόμηση κανονικών παραστάσεων.
Οι κανονικές παραστάσεις είναι πολύ ισχυρές, είναι διαθέσιμες σε πολλές γλώσσες προγραμματισμού και χρησιμοποιούνται για ένα ευρύ φάσμα σκοπών. Επίσης, είναι δυνατό να μοιάζουν συχνά με μια τυχαία αλληλουχία σημείων στίξης. Αυτό το άρθρο δεν περιγράφει όλες τις πτυχές των κανονικών παραστάσεων, αλλά υπάρχει πληθώρα πληροφοριών, μαθημάτων και εργαλείων στο Web.
Οι κανονικές παραστάσεις είναι σε διαφορετικές διαλέκτους και το Power Apps χρησιμοποιεί μια παραλλαγή της διαλέκτου της JavaScript. Ανατρέξτε στην ενότητα σύνταξη κανονικής παράστασης για μια εισαγωγή στη σύνταξη. Υποστηρίζονται οι επώνυμες δευτερεύουσες αντιστοιχίσεις (μερικές φορές ονομάζονται ομάδες αποτύπωσης):
- Επώνυμες δευτερεύουσες αντιστοιχίσεις: (?<name>...)
- Επώνυμες αναδρομικές αναφορές: \k <name>
Στον πίνακα απαρίθμησης Αντιστοίχιση που προηγήθηκε σε αυτό το θέμα, κάθε απαρίθμηση εμφανίζεται στην ίδια γραμμή με την αντίστοιχη κανονική παράσταση.
Επιλογές αντιστοίχισης
Μπορείτε να τροποποιήσετε τη συμπεριφορά αυτών των συναρτήσεων καθορίζοντας μία ή περισσότερες επιλογές, τις οποίες μπορείτε να συνδυάσετε με τον τελεστή συνένωσης συμβολοσειρών (&).
Απαρίθμηση MatchOptions | Description | Επίπτωση σε μια κανονική παράσταση |
---|---|---|
MatchOptions.BeginsWith | Το μοτίβο πρέπει να αντιστοιχίσει από την αρχή του κειμένου. | Προσθέτει ένα ^ στην αρχή της κανονικής παράστασης. |
MatchOptions.Complete | Προεπιλογή για τη συνάρτηση IsMatch. Το μοτίβο πρέπει να αντιστοιχίσει σε ολόκληρη τη συμβολοσειρά κειμένου, από την αρχή ως το τέλος. | Προσθέτει ένα ^ στην αρχή και ένα $ στο τέλος της κανονικής παράστασης. |
MatchOptions.Contains | Προεπιλογή για Match και MatchAll. Το μοτίβο πρέπει να εμφανίζεται σε κάποιο σημείο του κειμένου, αλλά δεν χρειάζεται να είναι στην αρχή ή στο τέλος του. | Δεν τροποποιεί την κανονική παράσταση. |
MatchOptions.EndsWith | Το μοτίβο πρέπει να αντιστοιχίσει στο τέλος της συμβολοσειράς κειμένου. | Προσθέτει ένα $ στο τέλος της κανονικής παράστασης. |
MatchOptions.IgnoreCase | Επεξεργάζεται κεφαλαία και πεζά γράμματα ως πανομοιότυπα. Από προεπιλογή, η αντιστοίχιση κάνει διάκριση πεζών-κεφαλαίων. | Δεν τροποποιεί την κανονική παράσταση. Αυτή η επιλογή είναι το ισοδύναμο του τυπικού τροποποιητή "i" για κανονικές παραστάσεις. |
MatchOptions.Multiline | Κάνει αντιστοίχιση σε πολλές γραμμές. | Δεν τροποποιεί την κανονική παράσταση. Αυτή η επιλογή είναι το ισοδύναμο του τυπικού τροποποιητή "m" για κανονικές παραστάσεις. |
Η χρήση της συνάρτησης MatchAll είναι ισοδύναμη με τη χρήση του τυπικού τροποποιητή "g" για κανονικές παραστάσεις.
Σύνταξη
IsMatch( Text, Pattern [, Options ] )
- Text – Υποχρεωτικό. Η συμβολοσειρά κειμένου για έλεγχο.
- Pattern – Υποχρεωτικό. Το μοτίβο για έλεγχο, ως συμβολοσειρά κειμένου. Συνενώστε προκαθορισμένα μοτίβα που ορίζονται από την απαρίθμηση της Match ή δώστε μια κανονική παράσταση. Το Pattern πρέπει να είναι ένας συνεπής τύπος χωρίς μεταβλητές, προελεύσεις δεδομένων ή άλλες δυναμικές αναφορές που αλλάζουν καθώς εκτελείται η εφαρμογή.
- Options – Προαιρετικό. Ένας συνδυασμός συμβολοσειρών κειμένου τιμών της απαρίθμησης MatchOptions. Από προεπιλογή, χρησιμοποιείται η MatchOptions.Complete.
Match( Text, Pattern [, Options ] )
- Text – Υποχρεωτικό. Η συμβολοσειρά κειμένου για αντιστοίχιση.
- Pattern – Υποχρεωτικό. Το μοτίβο για αντιστοίχιση ως συμβολοσειρά κειμένου. Συνενώστε προκαθορισμένα μοτίβα που ορίζονται από την απαρίθμηση της Match ή δώστε μια κανονική παράσταση. Το Pattern πρέπει να είναι ένας συνεπής τύπος χωρίς μεταβλητές, προελεύσεις δεδομένων ή άλλες δυναμικές αναφορές που αλλάζουν καθώς εκτελείται η εφαρμογή.
- Options – Προαιρετικό. Ένας συνδυασμός συμβολοσειρών κειμένου τιμών της απαρίθμησης MatchOptions. Από προεπιλογή, χρησιμοποιείται η MatchOptions.Contains.
MatchAll( Text, Pattern [, Options ] )
- Text – Υποχρεωτικό. Η συμβολοσειρά κειμένου για αντιστοίχιση.
- Pattern – Υποχρεωτικό. Το μοτίβο για αντιστοίχιση ως συμβολοσειρά κειμένου. Συνενώστε προκαθορισμένα μοτίβα που ορίζονται από την απαρίθμηση της Match ή δώστε μια κανονική παράσταση. Το Pattern πρέπει να είναι ένας συνεπής τύπος χωρίς μεταβλητές, προελεύσεις δεδομένων ή άλλες δυναμικές αναφορές που αλλάζουν καθώς εκτελείται η εφαρμογή.
- Options – Προαιρετικό. Ένας συνδυασμός συμβολοσειρών κειμένου τιμών της απαρίθμησης MatchOptions. Από προεπιλογή, χρησιμοποιείται η MatchOptions.Contains.
Παραδείγματα IsMatch
Συνήθεις χαρακτήρες
Φανταστείτε ότι η εφαρμογή σας περιέχει ένα στοιχείο ελέγχου Text input που ονομάζεται TextInput1. Ο χρήστης καταχωρεί τιμές σε αυτό το στοιχείο ελέγχου για αποθήκευση σε μια βάση δεδομένων.
Ο χρήστης πληκτρολογεί Hello world στο στοιχείο ελέγχου TextInput1.
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
IsMatch( TextInput1.Text, "Hello world" ) |
Ελέγχει εάν η καταχώρηση του χρήστη συμφωνεί ακριβώς με τη συμβολοσειρά "Hello world". | true |
IsMatch( TextInput1.Text, "Good bye" ) |
Ελέγχει εάν η καταχώρηση του χρήστη αντιστοιχεί ακριβώς τη συμβολοσειρά "Good bye". | false |
IsMatch( TextInput1.Text, "hello", Contains ) |
Ελέγχει εάν η καταχώρηση του χρήστη περιέχει τη λέξη "hello" (με διάκριση πεζών-κεφαλαίων). | false |
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) |
Ελέγχει εάν η καταχώρηση του χρήστη περιέχει τη λέξη "hello" (χωρίς διάκριση πεζών-κεφαλαίων). | true |
Προκαθορισμένα μοτίβα
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit ) |
Αντιστοιχεί έναν αριθμό κοινωνικής ασφάλισης των Ηνωμένων Πολιτειών | true |
IsMatch( "joan@contoso.com", Email ) |
Αντιστοιχεί μια διεύθυνση ηλεκτρονικού ταχυδρομείου | true |
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) |
Αντιστοιχεί μια ακολουθία ψηφίων, ένα διάστημα και, στη συνέχεια, κανένα ή περισσότερα ψηφία. | true |
IsMatch( "123", MultipleDigits & Period & OptionalDigits ) |
Αντιστοιχεί μια ακολουθία ψηφίων, ένα διάστημα και, στη συνέχεια, κανένα ή περισσότερα ψηφία. Το κείμενο προς αντιστοίχιση δεν περιέχει τελεία, επομένως δεν αντιστοιχεί σε αυτό το μοτίβο. | false |
Κανονικές παραστάσεις
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
IsMatch( "986", "\d+" ) |
Αντιστοιχεί έναν ακέραιο αριθμό μεγαλύτερο από το μηδέν. | true |
IsMatch( "1.02", "\d+(\.\d\d)?" ) |
Αντιστοιχεί ένα θετικό ποσό νομισματικής μονάδας. Εάν τα δεδομένα εισόδου περιέχουν υποδιαστολή, τα δεδομένα εισόδου πρέπει να περιέχουν επίσης δύο αριθμητικούς χαρακτήρες μετά την υποδιαστολή. Για παράδειγμα, η τιμή 3,00 είναι έγκυρη, αλλά η τιμή 3,1 όχι. | true |
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) |
Αντιστοιχεί ένα θετικό ή αρνητικό ποσό νομισματικής μονάδας. Εάν τα δεδομένα εισόδου περιέχουν υποδιαστολή, τα δεδομένα εισόδου πρέπει να περιέχουν επίσης δύο αριθμητικούς χαρακτήρες μετά την υποδιαστολή. | true |
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) |
Αντιστοιχεί έναν αριθμό κοινωνικής ασφάλισης των Ηνωμένων Πολιτειών. Επικυρώνει τη μορφή, τον τύπο και το μήκος του πεδίου εισόδου που δόθηκε. Η συμβολοσειρά για αντιστοίχιση πρέπει να αποτελείται από τρεις αριθμητικούς χαρακτήρες ακολουθούμενους από μια παύλα, έπειτα δύο αριθμητικούς χαρακτήρες ακολουθούμενους από μια παύλα και, στη συνέχεια, τέσσερις αριθμητικούς χαρακτήρες. | true |
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) |
Ίδιο με το προηγούμενο παράδειγμα, αλλά μία από τις παύλες είναι εκτός θέσης στα δεδομένα εισόδου. | false |
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) |
Επικυρώνει έναν ισχυρό κωδικό πρόσβασης, ο οποίος πρέπει να περιέχει οκτώ, εννιά ή 10 χαρακτήρες και τουλάχιστον ένα ψηφίο και τουλάχιστον έναν αλφαβητικό χαρακτήρα. Η συμβολοσειρά δεν πρέπει να περιέχει ειδικούς χαρακτήρες. | false |
Παραδείγματα Match και MatchAll
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>" |
Εξάγει μόνο το τμήμα ηλεκτρονικού ταχυδρομείου των πληροφοριών επικοινωνίας. | { email: "bob.jones@contoso.com", FullMatch: "<bob.jones@contoso.com>", SubMatches: [ "bob.jones@contoso.com" ], StartMatch: 11 } |
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" |
Εξάγει μόνο το τμήμα ηλεκτρονικού ταχυδρομείου των πληροφοριών επικοινωνίας. Δεν βρέθηκε καμία νόμιμη διεύθυνση (δεν υπάρχει σύμβολο @), επομένως η συνάρτηση επιστρέφει blank. | κενό |
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) |
Εξάγει τη γλώσσα, τη δέσμη ενεργειών και τμήματα περιοχής της ετικέτας γλώσσας που επιστρέφει η συνάρτηση Language. Τα αποτελέσματα αυτά αντικατοπτρίζουν τις Ηνωμένες Πολιτείες. Ανατρέξτε στην τεκμηρίωση της συνάρτησης Language για περισσότερα παραδείγματα. Οι ομάδες τελεστή (?: χωρίς να δημιουργηθεί άλλη δευτερεύουσα αντιστοίχιση. | { language: "en", script: blank, region: "US", FullMatch: "en-US", SubMatches: [ "en", "", "US" ], StartMatch: 1 } |
Match( "PT2H1M39S", "PT(?:<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) |
Εξάγει τις ώρες, τα λεπτά και τα δευτερόλεπτα από μια τιμή διάρκειας ISO 8601. Οι αριθμοί που έχουν εξαχθεί βρίσκονται ακόμα σε μια συμβολοσειρά κειμένου. Χρησιμοποιήστε τη συνάρτηση Value για να τη μετατρέψετε σε αριθμό πριν την εκτέλεση μαθηματικών πράξεων. | { hours: "2", minutes: "1", seconds: "39", FullMatch: "PT2H1M39S", SubMatches:["2","1","39"], StartMatch: 1 } |
Ας εμβαθύνουμε σε αυτό το τελευταίο παράδειγμα. Εάν θελήσατε να μετατρέψετε αυτήν τη συμβολοσειρά σε τιμή "ημερομηνία/ώρα" χρησιμοποιώντας τη συνάρτηση Time, πρέπει να περάσετε στις επώνυμες δευτερεύουσες αντιστοιχίσεις μεμονωμένα. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε τη συνάρτηση With η οποία λειτουργεί στην καρτέλα που επιστρέφει η συνάρτηση Match:
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
Για αυτά τα παραδείγματα, προσθέστε ένα στοιχείο ελέγχου Button, ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο και, στη συνέχεια, επιλέξτε το κουμπί:
Set( pangram, "The quick brown fox jumps over the lazy dog." )
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
Match( pangram, "THE", IgnoreCase ) |
Βρείτε όλες τις αντιστοιχίσεις του "THE" στη συμβολοσειρά κειμένου που περιέχει η μεταβλητή pangram. Η συμβολοσειρά περιέχει δύο αντιστοιχίσεις, αλλά μόνο η πρώτη επιστρέφεται επειδή χρησιμοποιείτε τη συνάρτηση Match και όχι τη MatchAll. Η στήλη των δευτερευουσών αντιστοιχίσεων είναι κενή επειδή δεν έχουν καθοριστεί δευτερεύουσες αντιστοιχίσεις. | { FullMatch: "The", SubMatches: [ ], StartMatch: 32 } |
MatchAll( pangram, "the" ) |
Βρείτε όλες τις αντιστοιχίσεις του "the" στη συμβολοσειρά κειμένου που περιέχει η μεταβλητή pangram. Στη δοκιμή γίνεται διάκριση πεζών-κεφαλαίων, επομένως εντοπίζεται μόνο η δεύτερη παρουσία του "the". Η στήλη των δευτερευουσών αντιστοιχίσεων είναι κενή επειδή δεν έχουν καθοριστεί δευτερεύουσες αντιστοιχίσεις. | |
MatchAll( pangram, "the", IgnoreCase ) |
Βρείτε όλες τις αντιστοιχίσεις του "the" στη συμβολοσειρά κειμένου που περιέχει η μεταβλητή pangram. Σε αυτήν την περίπτωση, δεν γίνεται διάκριση πεζών-κεφαλαίων στη δοκιμή, επομένως εντοπίζονται και οι δύο παρουσίες της λέξης. Η στήλη των δευτερευουσών αντιστοιχίσεων είναι κενή επειδή δεν έχουν καθοριστεί δευτερεύουσες αντιστοιχίσεις. | |
MatchAll( pangram, "\b\wo\w\b" ) |
Βρίσκει όλες τις λέξεις τριών γραμμάτων με ένα "ο" στη μέση. Λάβετε υπόψη σας ότι το "brown" εξαιρείται επειδή δεν είναι λέξη τριών γραμμάτων και, επομένως, δεν ταιριάζει με το "\b" (όριο λέξης). | |
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) |
Ταιριάζει με όλους τους χαρακτήρες ανάμεσα στις επιλογές "αλεπού" και "σκύλος". | { μεταξύ: "jumps over the lazy", FullMatch: "fox jumps over the lazy dog", SubMatches: [ "jumps over the lazy" ], StartMatch: 17 } |
Για να δείτε τα αποτελέσματα του MatchAll σε μια συλλογή:
Σε μια κενή οθόνη, εισαγάγετε ένα κενό κάθετο στοιχείο ελέγχου Gallery.
Ορίστε την ιδιότητα Items στο MatchAll( pangram, "\w+" ) ή MatchAll( pangram, MultipleLetters ).
Επιλέξτε "Προσθήκη στοιχείου από την καρτέλα Εισαγωγή "στη μέση του στοιχείου ελέγχου "συλλογή" για να επιλέξετε το πρότυπο της συλλογής.
Προσθέστε ένα στοιχείο ελέγχου Label στο πρότυπο συλλογής.
Ορίστε την ιδιότητα Text της ετικέτας σε ThisItem.FullMatch.
Η συλλογή συμπληρώνεται με κάθε λέξη στο κείμενο του παραδείγματος. Αλλάξτε το μέγεθος του προτύπου της συλλογής και του στοιχείου ελέγχου ετικέτας, προκειμένου να δείτε όλες τις λέξεις σε μία οθόνη.