Problème avec Regex - Recherche d'une chaîne

Apa -  
flokocha Messages postés 1519 Statut Membre -
Bonjour,

J'ai une grosse chaîne de caractères, de type : "Début de la chaîne 989988 Fin de le chaîne".

Je souhaite extraire le numéro "989988".
Rien de compliqué jusque la, j'utilise cette expression régulière : "#[0-9]{1,}#" (qui fonctionne très bien)

Le problème, c'est que mon but est de récupérer le nombre compris entre mes 2 chaînes, Or - je ne trouve aucune fonctions preg_ capable de faire cela.
Toutes les fonctions preg_ découpent ma chaîne en 2, grâce au nombre - Mais aucune ne peut "extraire" ce nombre..

Je me retrouve donc avec un tableau :
Case[0] => "Début de la chaîne"
Case[1] => "Fin de le chaîne"

Alors que je ne veux absolument pas cela, mais plutôt :
Case[0] => "989988"

Merci pour vos réponses :)

6 réponses

Freedomsoul Messages postés 538 Statut Membre 97
 
Alors... pour commencer:

Quel langage utilises-tu ?
Explique ce que tu recherches à faire:
=> Tu veux récupérer ce qu'il y a entre deux chaines ?
=> Ce que tu veux récupérer tous ce qui est numérique dans la chaine? [0-9] ?

<?php
$string = "Deb989988 485 354Fin";
preg_match_all('/[0-9]+/',$string,$matches);
print_r($matches[0]);
// Affichera Array ( [0] => 989988 [1] => 485 [2] => 354 )
?>
1
flokocha Messages postés 1519 Statut Membre 281
 
Salut,

Je ne sais pas quel est le langage utilisé, mais en règle générale pour "capturer" une portion de chaine à l'aide d'une regexp, il faut encadrer de parenthèses la regexp correspondant à la chaîne à capturer.
0
Utilisateur anonyme
 
Salut

Tu utilises quel language stp ?

@+
0
youkc Messages postés 60 Statut Membre 3
 
salut!

essai ça:

<?php
$string = "Début de la chaîne 989988 Fin de le chaîne";
for($i=0; $i<strlen($string); $i++) {
if(is_numeric($string[$i])){
echo $string[$i];
}
}
?>

mais s'il y a d'autres chiffres dans la chaines il va aussi les afficher.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pilotepro Messages postés 95 Statut Membre 7
 
Bonsoir,
A priori si tu parle d'utiliser la fonction Regex, je pense que le langage que tu utilise est Visual Basic. Si c'est bien le cas, admettons que ta chaîne complète soit :

21313413298998864831353

Sachant que tu souhaite récupérer la chaîne : 989988

Il te suffit d'utiliser le code suivant :

Dim machaine As String     

machaine = "21313413298998864831353"     
machaine = Replace(machaine, "213134132", System.String.Empty)     
machaine = Replace(machaine, "64831353", System.String.Empty)     

MsgBox(machaine)     

Il ne te reste plus qu'à suivre le principe pour la véritable valeur de ta chaîne.

En espérant t'avoir aider

Cordialement
0
Freedomsoul Messages postés 538 Statut Membre 97
 
"Toutes les fonctions preg_ [...]" Fait plus penser à du php :)

Mais par contre, dans ton cas, il faut connaître le début de la chaine et la fin, or je ne pense pas que ça soit forcément le cas, c'est vrai que ça n'est pas très bien expliqué :s
0
Apa
 
Excusez pas ne pas avoir préciser (Je ne pensais que "preg" était spécifique à un langage) J'utilise cela en PHP.

Je me suis renseigné sur les fonctions suivantes :
preg_match
preg_grep
preg_quote
preg_replace
preg_replace_callback
0
flokocha Messages postés 1519 Statut Membre 281
 
Dans ce cas la solution proposée par Freedomsoul fonctionnera parfaitement.
0