IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

preg_match sur 4 types de regex [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut preg_match sur 4 types de regex
    Bonjour,

    Je souhaiterai savoir comment mettre en place un preg_match sur un fichier et contenant 4 types de lignes :
    - Numérique de 1 à 1000 (exemple : 560)
    - Numérique et symboles (exemple : 00:01:01,592 --> 00:01:04,267). Regex : "/[0-9]:[0-9]/".
    - Phrase simple (exemple : Bonjour je m'appelle 19)
    - Ligne blanche (exemple : )

    Le reste je ne sais pas comment m'y prendre.

    Merci pour votre aide.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre que ce t'as en entrer et ce que tu souhaites en sortie

  3. #3
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Citation Envoyé par entreprise38 Voir le message
    si tu as un peu de mal avec les expressions régulières,

    - tant au niveau java : il existe d'excellents tutoriels sur Developpez même
    ----> celui de notre cyberzoide : http://cyberzoide.developpez.com/java/regex/ (incontournable, celui-là);

    - tant au niveau des expressions régulières :
    ----> la javadoc associée : http://java.sun.com/j2se/1.5.0/docs/...ttern.html#sum, tu auras tous les mots utilisables dans des regex en Java (je précise Java, car certains langages de programmation et plateformes ont des implémentations légèrement différentes des expressions régulières);
    ----> des sites tels que http://www.expreg.com/ proposent de bons cours. Ce site est pour PHP, mais il est très facile de passer ensuite à Java.

    Y'a plus qu'à.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu veux parser un fichier SRT ?

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $str="
    1\n00:00:00,000 --> 00:00:10,500\nBonjour,\nJe souhaiterai savoir comment mettre en place un preg_match sur un fichier et contenant 4 types de lignes\n\n
    2\n00:00:11,000 --> 00:00:16,256\nsi tu as un peu de mal avec les expressions régulières,\nil existe d'excellents tutoriels sur Developpez\n\n
    3\n00:00:17,600 --> 00:00:20,800\ntu veux parser un fichier SRT ?\n\n
    4\n00:00:22,802 --> 00:00:25,000\nIl semblerait que ce soit le cas oui\nTo be continued...\n\n";
     
    if(preg_match_all('/^(\d+)\r?\n(\d{2}:\d{2}:\d{2},\d{3})\s+-->\s+(\d{2}:\d{2}:\d{2},\d{3})\r?\n(.+?)\r?\n$/sm', $str, $res, PREG_PATTERN_ORDER)){
    	echo '<pre>';
    	print_r($res);
    	echo "</pre>\n";
    }
    Renvoie...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    /*
    Array(
    	[0] => Array(
    		[0] =>	1
    				00:00:00,000 --> 00:00:10,500
    				Bonjour,
    				Je souhaiterai savoir comment mettre en place un preg_match sur un fichier et contenant 4 types de lignes
     
    		[1] =>	2
    				00:00:11,000 --> 00:00:16,256
    				si tu as un peu de mal avec les expressions régulières,
    				il existe d'excellents tutoriels sur Developpez
     
    		[2] =>	3
    				00:00:17,600 --> 00:00:20,800
    				tu veux parser un fichier SRT ?
     
    		[3] =>	4
    				00:00:22,802 --> 00:00:25,000
    				Il semblerait que ce soit le cas oui.
    				To be continued...
    	)
     
    	[1] => Array(
    		[0] =>	1
    		[1] =>	2
    		[2] =>	3
    		[3] =>	4
    	)
     
    	[2] => Array(
    		[0] =>	00:00:00,000
    		[1] =>	00:00:11,000
    		[2] =>	00:00:17,600
    		[3] =>	00:00:22,802
    	)
     
    	[3] => Array(
    		[0] =>	00:00:10,500
    		[1] =>	00:00:16,256
    		[2] =>	00:00:20,800
    		[3] =>	00:00:25,000
    	)
     
    	[4] => Array(
    		[0] =>	Bonjour,
    				Je souhaiterai savoir comment mettre en place un preg_match sur un fichier et contenant 4 types de lignes
     
    		[1] =>	si tu as un peu de mal avec les expressions régulières,
    				il existe d'excellents tutoriels sur Developpez
     
    		[2] =>	tu veux parser un fichier SRT ?
    		[3] =>	Il semblerait que ce soit le cas oui
    				To be continued...
    	)
    )
    */

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    sans vouloir dévaluer la qualité des cours sur les expressions régulières java, il existe aussi un document dans la doc php, qui est extrêmement ardu à lire pour un non initié, mais qui devient comprehensible et complet dès qu'on a un peu de pratique. L'avantage c'est qu'il fourmille d'exemple en php.

    http://fr.php.net/manual/fr/pcre.pattern.php

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    Merci tout particulièrement à eric2a pour son aide, je test ça cet aprem et je vous tiens au courant.

    Au niveau code je souhaite obtenir ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if(numero-chiffre) {
    ...
    } elseif(etc) {
    }
    ?>
    en sortie je veux soit afficher le numéro du sous-titre ou afficher par exemple le sous-titre à traduire, en effet je souhaiterais en faite afficher le str anglais et en face le str français pour faire de la traduction directe.
    Le problème vient surtout de l'affichage du st français.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    J'ai voulu faire compliqué alors qu'il suffisait de recherché chez notre ami Google : parser srt php, ce qui nous mène à ce tutoriel : http://www.talkphp.com/vbarticles.ph...-subtitle-file très efficace.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. limite de caractère sur un type="texte"
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/03/2005, 14h06
  2. [MSDE] CREATE RULE sur un type utilisateur ?
    Par Raduris dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/01/2005, 12h24
  3. informations sur le type interval dans interbase
    Par devalender dans le forum InterBase
    Réponses: 6
    Dernier message: 03/06/2004, 10h29
  4. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 18h55
  5. Application Portable sur differents types de BDD
    Par sylvain_2020 dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 23/09/2003, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo