Utiliser php pour diviser les noms d'utilisateur, les mots de passe, le nom de données, le nom d'hôte, etc. en une variable.affecter une valeur de groupe correspondante dans la variable en php
Par exemple:
$ db = "databasename: // nom d'utilisateur: mot de passe @ nom d'hôte/dbname"
$ databasename = databasename
$ user = nom d'utilisateur
$ pass = mot de passe
$ host = hostn amme
$ dbname = dbname
J'ai essayé avec le regroupement dans l'expression régulière. mais je ne sais pas comment affecter les valeurs du groupe dans la variable.
preg_match ("(^ ([az] ): // ([az]): ([az] ) @ [az])/([az] *?) $) ", $ db, $ correspond à);
mon entrée peut être ce $ db = "databasename: // nom d'utilisateur: mot de passe @ nom d'hôte/dbname"; [ou] this $ db = "nom de la base de données: // nom d'utilisateur: [email protected]/dbname"; pour cela j'ai écrit l'expression régulière comme ceci. if (preg_match ("~^([a-zA-Z] +): // ([a-zA-Z] +): ([a-zA-Z] +) @ ([az] | ([ 0-9] {1,3} [.] [0-9] {1,3} [.] [0-9] {1,3} [.] [0-9] {1,3})) +/([az] +) \ $ ~ i ", $ db, $ correspond à) [0] => pgsql: // sugumar: [email protected]/sugumar [1] => pgsql [2] => Sugumar [3] => Sugumar [4] => 192.168.12.130 [5] => 192.168.12.130 [6] => Sugumar pourquoi l'indice 4 et 5 sont les mêmes. – ungalnanban
@ung Parce que vous avez utilisé deux groupes ... Vous pouvez utiliser '(?: Quelque chose ici)' au lieu de '(quelque chose ici)' pour les groupes qui ne capturent pas. – Artefacto