English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explication détaillée de l'opérateur régulier personnalisé =~ en swift

Qu'est-ce qu'une expression régulière ?

Les expressions régulières, également connues sous le nom de notation régulière, notation conventionnelle (en anglais: Regular Expression, souvent abrégé en regex, regexp ou RE), sont un concept de la science informatique. Les expressions régulières utilisent une seule chaîne pour décrire et correspondre à une série de chaînes qui correspondent à certaines règles syntaxiques. Dans de nombreux éditeurs de texte, les expressions régulières sont souvent utilisées pour rechercher et remplacer des textes qui correspondent à un certain modèle.

Swift n'a pas encore de support au niveau du langage pour les expressions régulières, ce qui peut signifier que les scénarios d'utilisation des expressions régulières ne sont pas nombreux lors du développement d'applications.

Encapsulation

Dans Cocoa, nous pouvons utiliser NSRegularExpression pour faire des correspondances régulières, donc nous encapsulons une RegularExpHelper sur la base de NSRegularExpression pour vérifier si une chaîne correspond à une expression régulière.

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
 }
}

Personnalisation =~

Avec l'aide de RegularExpHelper encapsulé, nous pouvons facilement personnalisé les opérateurs.

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)
 }
  return false
 }
}

définition de l'opérateur

  • infix signifie définir un opérateur infixe (les deux entrées sont avant et après)
  • prefix signifie définir un opérateur préfixe (l'entrée est avant)
  • postfix signifie définir un opérateur postfixe (l'entrée est après)

associativity la loi de combinaison

c'est l'ordre de calcul lorsque plusieurs opérateurs de même catégorie apparaissent en même temps

  • left (de gauche à droite)
  • right (de droite à gauche)
  • none (par défaut, ne se combine pas)

Priorité

  • higherThan a priorité supérieure à AdditionPrecedence c'est le type d'addition
  • lowerThan a priorité inférieure à MultiplicationPrecedence multiplication et division

alors nous pouvons l'utiliser

 if "[email protected]" =~ "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.2,6})$" {
  print("Correspond aux règles de l'adresse e-mail")
 }
  print("Ne correspond pas aux règles de l'adresse e-mail")
 }

Attention

  • Attention à l'utilisation des caractères d'échappement lors de l'utilisation de chaînes de caractères d'expression régulière.
  • Les opérateurs Swift ne peuvent pas être définis dans une zone locale, car les opérateurs doivent être utilisés à l'échelle mondiale.
  • Il y a de nombreux risques dans le surcharge et la personnalisation des opérateurs, veuillez vous demander plusieurs fois avant de savoir si vous avez vraiment besoin de le faire ainsi !

Résumé

Voici la fin de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour votre apprentissage ou votre travail. Si vous avez des questions, vous pouvez laisser des commentaires pour échanger. Merci de votre soutien au tutoriel d'alarme.

Déclaration : le contenu de cet article est issu du réseau, et appartient à l'auteur original. Le contenu est apporté par les utilisateurs d'Internet de manière spontanée et auto-publiée. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aussi aimer