Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Autres langages > [OCAML] Capturer une partie d'une regex . > Lecture du sujet

[OCAML] Capturer une partie d'une regex .

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne kop6 # Posté le 07/07/2008 à 15:50:19
Groupe : Membres
Bonjour,

j'aimerais pouvoir mettre les resultats d'une recherche avec une regex dans un array/list .
Par exemple avoir un array [|"chan";"nick";"raison"|] grace a ce code :
Code : OCaml
1
2
let r = "nick!nick@truc KICK #chan nick :raison" in
let _ = Str.search_forward (Str.regexp "KICK #.+ .+ :.*") r 0;;

L'équivalent de l'argument matches de preg_match en PHP .

Merci .
Connecté Dark-Side # Posté le 07/07/2008 à 16:16:49
($ ) + 10.
Avatar
Groupe : Membres
Hum, je sais pas bien ce que tu veux faire mais je pense que tu peux te débrouiller à partir de Str.string_match et Str.matched_group nombre string .
Pense à associer ça avec des parenthèses capcturantes, bien entendu ...
Cette solution n'est pas forcément la plus adapté mais c'est la seule que mes maigres connaissances peuvent trouver, et je pense qu'elle peut te convenir. :)

Image utilisateur

Envie de vous mettre au lojban ?
« mi nelci lonu do dikni tcidu le nuzba pe la'o fy. BHM fy. »
 
Hors ligne kop6 # Posté le 08/07/2008 à 10:07:20
Groupe : Membres
Merci :D .
Seulement j'ai un probleme avec les parenthèses :
Code : OCaml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# let r = "oo!ff@free KICK #re lool :kikoo";;
# Str.string_match (Str.regexp "(.*)ff") r 0;;
- : bool = false
# Str.string_match (Str.regexp ".*ff") r 0;;
- : bool = true

# Str.string_match (Str.regexp "\(.*\)ff") r 0;;
Warning X: illegal backslash escape in string.
Warning X: illegal backslash escape in string.
- : bool = true


Je me gourre ou bien les warnings sont totalement normaux ?
Pourtant :
Citation : Manuel OCAML
matched_group n s returns the substring of s that was matched by the nth group \(...\)

merci .
Édité le 08/07/2008 à 10:09:34 par kop6
Hors ligne zulon # Posté le 08/07/2008 à 10:51:59
The shrieker shrieks.
Avatar
Groupe : Membres
Les "illegal backslash escapes..." sont "normaux", OCaml fait toujours ça. N'en tiens pas compte (il y a d'ailleurs moyen de les désactiver, ocaml --help).
Édité le 08/07/2008 à 10:52:33 par zulon
Hors ligne kop6 # Posté le 08/07/2008 à 11:47:29
Groupe : Membres
Ok, merci .
Hors ligne bluestorm # Posté le 08/07/2008 à 12:02:57
dont ask to ask
Avatar
Groupe : Membres
Hors ligne zulon # Posté le 08/07/2008 à 12:06:27
The shrieker shrieks.
Avatar
Groupe : Membres
Oh, j'ai toujours utilisé les regexps comme ça moi, et ça a toujours marché :-° . Désolé d'avoir véhiculé de fausses idées. Il semblerait qu'OCaml transforme les échappements illégaux en "\\(", par exemple.
Édité le 08/07/2008 à 12:22:07 par zulon
Hors ligne kop6 # Posté le 09/07/2008 à 18:24:22
Groupe : Membres
Doncil faut que j'utilise \\ ? C'est que sa devient vite illisible une regex avec tout ça :) .
Connecté Dark-Side # Posté le 09/07/2008 à 18:41:23
($ ) + 10.
Avatar
Groupe : Membres
Bah hum, par nature une regexp c'pas le truc le plus lisible du monde :-°

Image utilisateur

Envie de vous mettre au lojban ?
« mi nelci lonu do dikni tcidu le nuzba pe la'o fy. BHM fy. »
 
Hors ligne zulon # Posté le 09/07/2008 à 18:48:38
The shrieker shrieks.
Avatar
Groupe : Membres
Ça dépend, on peut faire des regexps très lisibles en Perl avec le modifieur /x (et encore plus en Perl 6 %).

Retour au forum "Autres langages" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 297 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1347s (0.1143s)