Mit Regular Expression nach einer Zahlenfolge suchen
Hallo allerseits,
ich möchte mit preg_match einen String auseinander nehmen. In dem String kommen neben diversen alphanumerischen Zeichen auch mehrere Zahlenfolgen vor. Eine dieser Zahlenfolgen hat mindestens 12 Stellen (oder mehr) und wird von je einem beliebigen nicht-numerischen Zeichen abgegrenzt.
Ich möchte erreichen, daß die Zahlenfolge mit mindestens 12 oder mehr Stellen durch preg_match separiert wird. Hier Beispiel-Strings:
oder
Für mich von Interesse ist die Zahlenfolge 970222713953 die in den beiden Beispiel-Strings vorkommt. Das Erkennungsmerkmal ist die Länge der Zahlenfolge, die in jedem Fall >= 12 ist.
Grüße
Cody
ich möchte mit preg_match einen String auseinander nehmen. In dem String kommen neben diversen alphanumerischen Zeichen auch mehrere Zahlenfolgen vor. Eine dieser Zahlenfolgen hat mindestens 12 Stellen (oder mehr) und wird von je einem beliebigen nicht-numerischen Zeichen abgegrenzt.
Ich möchte erreichen, daß die Zahlenfolge mit mindestens 12 oder mehr Stellen durch preg_match separiert wird. Hier Beispiel-Strings:
Es konnte in 5824 Datensätzen ein Gesamtwert von 970222713953 Einheiten zu je 500 Punken ermittelt werden.
Von 5824 Datensätzen mit insgesamt 970222713953 Einheiten zu je 500 Punken werden 824 ausgetragen.
Für mich von Interesse ist die Zahlenfolge 970222713953 die in den beiden Beispiel-Strings vorkommt. Das Erkennungsmerkmal ist die Länge der Zahlenfolge, die in jedem Fall >= 12 ist.
Grüße
Cody
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120450
Url: https://administrator.de/forum/mit-regular-expression-nach-einer-zahlenfolge-suchen-120450.html
Ausgedruckt am: 05.04.2025 um 19:04 Uhr
7 Kommentare
Neuester Kommentar
Guten Abend !
Hehe, jetzt habe ich länger für das drum herum gebraucht als für den RegEx selber ^^
Gute Nacht
~Arano
Hehe, jetzt habe ich länger für das drum herum gebraucht als für den RegEx selber ^^
<?php
echo 'Hilfe fuer Codehunter ([content:120450];;)
/* test 1 */
$str = 'Es konnte in 5824 Datensätzen ein Gesamtwert von 970222713953 Einheiten zu je 500 Punken ermittelt werden.';
echo $str.'<br>Einheiten: "'.getEinheiten($str).'"<br><br>';
/* return 970222713953 */
/* test 2 */
$str = 'Von 5824 Datensätzen mit insgesamt 970222713953 Einheiten zu je 500 Punken werden 824 ausgetragen.';
echo $str.'<br>Einheiten: "'.getEinheiten($str).'"<br><br>';
/* return 970222713953 */
/* mit 10 stellen */
$str = 'Von 5824 Datensätzen mit insgesamt 01234567891 Einheiten zu je 500 Punken werden 824 ausgetragen.';
echo $str.'<br>Einheiten: "'.getEinheiten($str).'"<br><br>';
/* return not available */
/* mit buchstaben */
$str = 'Von 5824 Datensätzen mit insgesamt 970222713953d Einheiten zu je 500 Punken werden 824 ausgetragen.';
echo $str.'<br>Einheiten: "'.getEinheiten($str).'"<br><br>';
/* return not available */
/* mit langer zahl */
$str = 'Von 5824 Datensätzen mit insgesamt 9702227139530000000000 Einheiten zu je 500 Punken werden 824 ausgetragen.';
echo $str.'<br>Einheiten: "'.getEinheiten($str).'"<br><br>';
/* return 9702227139530000000000 */
function getEinheiten($str)
{
/**
* $pattern
* zeichenkette die mit elf zahlen beginnt, mit mindestens einer weitergeht
* und auf ein leehrzeichen endet. den zahlenteil davon geklammert weil wir
* das leerzeichen nicht haben moechten
*/
$strPattern = '/([0-9]{11}[0-9]+) /';
$arrHits = array();
$boolFound = preg_match($strPattern,$str,$arrHits);
if(FALSE == $boolFound)
return 'not available';
return $arrHits[1];
/**
* $arrHits = '123456789123 ' // gesamter ausdruck (mit leerzeichen)
* $arrHits[1] = '123456789123' // erster teilausdruck (erste klammer [ohne leerzeichen])
*/
}
?>
Gute Nacht
~Arano
" Ich brauch unbedingt mal mehr Literatur zu RegEx "
http://www.regular-expressions.info/index.html
" Solche Konstrukte wie "{12,}" habe ich noch nirgends gesehen... "
http://www.regular-expressions.info/reference.html (am ende)
Hier gibts noch ich paar super CheatSheets, sehr pracktisch:
http://www.addedbytes.com/cheat-sheets/
~Arano
http://www.regular-expressions.info/index.html
" Solche Konstrukte wie "{12,}" habe ich noch nirgends gesehen... "
http://www.regular-expressions.info/reference.html (am ende)
Hier gibts noch ich paar super CheatSheets, sehr pracktisch:
http://www.addedbytes.com/cheat-sheets/
~Arano