Avatar billede brian_lundgaard Nybegynder
05. december 2001 - 11:22 Der er 4 kommentarer og
1 løsning

ereg_replace

Jeg er ikke så hård til regular expressions, men er man det, er den her barnemad:

Jeg har en streng, som eksempelvis kunne hedde
\"122readd@dr.dk.txt\" eller
\"341ole@mushroom.dk.txt\"
Det er helt nøjagtigt mit unikke id-nummer, en e-mailadresse og et efternavn (det er egentligt et filnavn). Jeg skal have isoleret id-nummeret (fjernet mail.txt), men det gør ikke noget, hvis udtrykket ikke kan klare e-mails, som starter med numre (dem er der alligevel så få af) - men det skulle gerne kunne isolere de første tal i \"431erling_44@savl.dk.txt\", så jeg kun får \"431\" ud og ikke \"43144\". Måske er det en hjælp, at id-nummeret kun kan slutte på \"1\" og \"2\"?

Derefter skal jeg så blot have slettet det sidste kontrolciffer (1 eller 2) så \"321\" bliver til \"32\" og \"432\" til \"43\".

Nogen, som kan hjælpe?
Avatar billede brian_lundgaard Nybegynder
05. december 2001 - 11:28 #1
Tillægsspørgsmål (til flere pts. hvis nogen kan svare): I min manual står, at \"array_unique was broken in PHP 4.0.4!\". Hvad skal man så bruge? Er der en anden smart måde at komme af med dubletter i arrays?
Avatar billede fireworld Nybegynder
05. december 2001 - 11:29 #2
ereg_replace(\"321\",\"32\",\"321\");

??
Avatar billede brian_lundgaard Nybegynder
05. december 2001 - 11:34 #3
Hvad? Du forstår, at eksemplerne er eksempler? Hvis jeg kun skulle have rettet tre strenge til, ville jeg gøre det i hånden! :o]

Der er ca. 70 brugere med hver deres dynamisk tildelte id-nummer - alle strenge er formateret som ovenstående eksempler!
Avatar billede delwin Nybegynder
05. december 2001 - 13:24 #4
prøv sådan noget her..

$string    = \"341ole@mushroom.dk.txt\";

ereg(\"^([0-9]*)\",$string,$regs);
echo $regs[1];
Avatar billede brian_lundgaard Nybegynder
05. december 2001 - 14:28 #5
Den her:
**********
$handle=opendir(\"viewer/tid\");
  while ($fi = readdir($handle))  {
  if ($fi != \'.\' && $fi != \'..\') {
  ereg(\"^([0-9]*)\",$fi,$regs); }

if ($regs){
  sort($regs);
  foreach($regs as $str) {
if ($str) {
if (ereg(\"1$\",$str)) {  $str=ereg_replace(\"1$\",\"\",$str); }
elseif (ereg(\"2$\",$str)) { $str=ereg_replace(\"2$\",\"\",$str); }
if ($str!=$old_str) {
  echo \"$str<br>\"; }
  $old_str=$str;
  } } } }
*******

gør ca. det jeg skulle bruge. Med mindre nogen haster til med en mere smart måde at gøre det på, får delwin pointsene.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester