String / preg_match

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sjef dresen

sjef dresen

27/02/2012 20:26:38
Quote Anchor link
Beste,

Om uit een (hele) lange string een bepaalde substring (alleen numerieke karakters) ben ik na LANG proberen op deze code beland:

Quote:

$string = "hfjdshfjhsjfhsjfh123456789012hfjshfjhsfjhsjfhs333334457845hjdfhdhdfjhfj34343434"

preg_match('/([0-9]{12})/', $string, $match);
echo $match[1];


Output: 123456789012

Dit werkt uitstekend als er één 12-cijferig getal in $string zit. Als dit echter meerdere keren voorkomt, dan krijg ik (logisch ook) toch maar 1 result terug.

Hoe kan ik ervoor zorgen dat ik alle (bijvoorbeeld 3 stuks) 12-cijferige substrings terug krijg uit de "bron-string"?

Alvast bedankt voor de hulp!!

Met vriendelijke groet,

Sjef
 
PHP hulp

PHP hulp

21/11/2024 22:23:49
 
Reshad F

Reshad F

27/02/2012 20:36:23
Quote Anchor link
als je nou in een while lus zet dat zolang je cijfers terugkrijgt ( van 12 ) dat hij de functie blijft herhalen totdat er geen cijfers in zitten?
 
Sjef dresen

sjef dresen

27/02/2012 20:50:30
Quote Anchor link
Dan vind hij steeds dezelfde...
Op de één of andere manier moet ik zorgen dat hij die wat hij gehad heeft wegknipt.
 
Reshad F

Reshad F

27/02/2012 20:54:44
 
Sjef dresen

sjef dresen

27/02/2012 22:08:10
Quote Anchor link
Dankje!
Dat is zeer interessant informatie zeg.
Wel heel "vrij ingewikkeld" maar wel super interessant.
Alweer vind ik het te gek om te zien wat er allemaal met PHP mogelijk is :)

Ik heb nu deze code:

Quote:
$string = "hfjdshfjhsjfhsjfh123456789012hfjshfjhsfjhsjfhs333334457845hjdfhdhdfjhfj34343434"
preg_match("/^([0-9]{12})([0-9]{10})$/", $string, $match);
print_r($match);


En aan de hand van dit voorbeeld:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
$x
= "The programming republic of Perl";
preg_match("/^(m{1,2})(.*)$/", $x, $matches);
print_r($matches);
// [0] => 'mm'
// [1] => 'ing republic of Perl'

?>


zou je zeggen dat ik dit terug krijg:

[0] => '012345678912'
[1] => '3333344578'

Maar ik krijg alleen maar "Array ( )" terug..?
 
Erwin H

Erwin H

27/02/2012 22:41:14
Quote Anchor link
Volgens mij zou deze moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
preg_match_all("/\d{1,}/", $x, $matches);
?>


Uit je laatste post krijg ik alleen het idee dat je alleen de 10 en 12 cijfer grote getallen wilt hebben, dan zou je d{1,} kunnen aanpassen naar d{10,} bijvoorbeeld, dan komt de laatste niet mee (want maar 8 lang).
Alle gevonden substrings komen in $matches terecht.
 
Sjef dresen

sjef dresen

28/02/2012 07:43:24
Quote Anchor link
Super bedankt Erwin (en reshadd farid) het werkt :-)

Ik heb inderdaad die 1 moeten aanpassen in 10.
Ideaal dit. Toppie!

Thanks en greetz,

Sjef
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.