English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cos'è un'espressione regolare?
Espressione regolare, anche chiamata rappresentazione regolare, rappresentazione convenzionale (in inglese: Regular Expression, spesso abbreviata in regex, regexp o RE), un concetto della scienza informatica. L'espressione regolare utilizza una singola stringa per descrivere e abbinare una serie di stringhe che seguono una certa regola sintattica. In molti editor di testo, l'espressione regolare viene spesso utilizzata per cercare e sostituire il testo che corrisponde a un certo modello.
Swift non supporta ancora le espressioni regolari a livello linguistico, quindi potrebbe non essere necessario utilizzare le espressioni regolari molto spesso durante la sviluppo di app.
Encapsulamento
In Cocoa possiamo utilizzare NSRegularExpression per eseguire la corrispondenza regolare, quindi abbiamo creato un encapsulamento di RegularExpHelper per verificare se una stringa corrisponde a un'espressione regolare.
struct RegularExpHelper { let RegularExp: NSRegularExpression init(_ pattern: String) throws { try RegularExp = NSRegularExpression(pattern: pattern, options: .caseInsensitive) } func match(inpuut: String) -> Bool { let matches = RegularExp.matches(in: inpuut, options: [], range: NSMakeRange(0, inpuut.count)) return matches.count > 0 } }
Personalizzazione =~
Con l'aiuto di RegularExpHelper ben encapsulato, possiamo personalizzare facilmente gli operatori.
infix operator =~ : ATPrecedence precedencegroup ATPrecedence { associativity: none higherThan: AdditionPrecedence lowerThan: MultiplicationPrecedence } func =~ (input: String, RegularExp: String) -> Bool { do { return try RegularExpHelper(RegularExp).match(inpuut: input) catch _ { return false } }
Definizione degli operatori
Associativity (legge)
cioè l'ordine di calcolo quando più operatori dello stesso tipo appaiono consecutivamente
Priorità
Poi possiamo usarlo
if "[email protected]" =~ "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$" { print("Soddisfa le regole di posta elettronica") } print("Non soddisfa le regole di posta elettronica") }
Attenzione
Sommario
Questo è tutto il contenuto dell'articolo, speriamo che il contenuto di questo articolo abbia un valore di riferimento o di studio per voi. Se avete domande, potete lasciare un messaggio per scambiare opinioni, grazie per il supporto di tutti alla guida a urlo.
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.