J'essaie d'utiliser RegEx (PHP) pour capturer le chemin des dossiers avec des fichiers exclus.
J'ai ces chemins, par exemple: p> jusqu'à présent je "J'ai essayé: p> Ça fonctionne, à l'exception de C : \ Query p> J'ai aussi essayé: p> mais c'est pire. P> P>
3 Réponses :
donner ce modèle un essai: p>
Demo: https://regex101.com/r/8enfu8/2 p>
Votre utilisation de ^ (?: [A-Z]: | \\) \\ (?: [\ w \\] + \\)? Code> P>
[^.] + code> est en train de couvrir votre correspondance sur plusieurs lignes. P>
Merci mais malheureusement c: \ Query n'est pas capturé
regarder la regex que vous devriez vouloir est: p> c: \ apps \ office code> Il est impossible de dire si c'est le nom d'un répertoire ou le nom d'un fichier nommé bureau code> dans un répertoire nommé C: \ Apps code>. De même, C: \ apps \ Safe \ Paramètres.ini code> pourrait être le nom d'un répertoire. Je dois donc supposer que tous les exemples que vous avez montrés devraient être également valables. Sinon, vous devez mettre à jour votre question pour mieux définir ce qui est précisément que vous recherchez en termes d'entrée et de sortie. Mais sur la base de mon interprétation de votre question, il semble que vous souhaitiez reconnaître C: \ requête code> et donc, ^((?:[A-Za-z]:\\|\\\\)(?:[^\\\n.]+)(?:\\[^\\\n.]+)*)(?!.*?\....)(?:.*?)$
Disons que mes fichiers ont une extension avec 3-4 mots: .ini, .docx et mes dossiers n'ont pas de point. Y a-t-il une solution? Si non, je pourrais insérer une condition dans mon programme: dossier comme C: \ Query avec ^ (?: [A-Za-Z]: \\ | \\\\) (\ w +) $
La réponse postée par @thefourthbird est vraiment le meilleur moyen de résoudre le problème. Pourquoi n'est-ce pas acceptable pour vous? Votre façon dont vous ne seriez que correspondant c: \ apps \ Safe \ Paramètres.ini code> dans vos exemples, si je vous comprends correctement.
Autre alternative à l'utilisation d'une regex, vous pouvez utiliser PATHINFO et vérifier l'extension: sortie p> voir un Démo PHP P> Si vous ne voulez pas correspondre à un nom de fichier avec une extension spécifique: P>
^(?!.*\.(?:ini|docx)?$)[^\\\r\n]*(?:\\+[^\r\n\\]+)+$
Merci, mais si j'utilise Regex pour PHP, mon programme est une langue d'auto-assistance.
Pourquoi ne fonctionne-t-il pas? Pouvez-vous définir ce qu'est un modèle valide? Pourquoi
c: \ apps \ office code> valide alors quec: \ requête code> n'est pas? Quel est le rendement attendu de votre exemple de données?