Avatar billede sjh Nybegynder
01. oktober 2005 - 00:33 Der er 24 kommentarer og
1 løsning

klip tekst ud preg_match_all

Jeg skal ha klippet noget tekst ud fra en string..

hvis der står:
disk X
disc X
cd X

eller

diskX
discX
cdX

X = er så et tal mellem 1 og 999999999

eller hvis der står noget i parentes ( )

Men jeg skal bruge den "tekst" som bliver klippet ud..
Avatar billede coderdk Praktikant
01. oktober 2005 - 00:39 #1
Og hvilken tekst skal du bruge? Tallet? Hvordan står parenteserne hvis der er nogle?
Avatar billede sjh Nybegynder
01. oktober 2005 - 00:44 #2
Jeg skal bruge det hele :D

fx. Flintstones Disk 1

title = Flintstones
comment = Disk 1


fx. Flintstones (Disk 1)

title = Flintstones
comment = (Disk 1)
Avatar billede sjh Nybegynder
01. oktober 2005 - 00:49 #3
Ja da kan jo også så..

fx. Flintstones (børnefilm)

title = Flintstones
comment = (børnefilm)
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 08:12 #4
Kan du komme med en rimeligt stor liste, og hvad det så skal give?
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:06 #5
en liste til hvad?? jeg kan jo også bare lave den selv ik..

jeg kan godt lave den med parenteserne ( )


  $strTitle = "Flintstones (noget tekst)";
  if (preg_match_all("-(\(.*?)\)-", $strTitle, $arrMatches)) {
    $comment = $arrMatches[0];
    $title = str_replace($comment[0], "", $strTitle);
  }
  echo "title: ".$title."<br>"; //-- Flintstones
  echo "comment: ".$comment[0]."<br>"; //-- (noget tekst)
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:10 #6
den med disk osv.. tror jeg er noget med:

if (preg_match_all("-Disk[^0-9 eller mellemrum]-", $strTitle, $arrMatches)) {
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 09:15 #7
"en liste til hvad??" - så jeg se hvad dine regler er. Det synes jeg ikke fremgår klart, derfor beder jeg om eksempler. Men du har ret: du kan da bare lave den selv ;))
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:20 #8
JA :D

Nu var det jo lige det jeg ikke kunne finde ud af.. altså..
disk (her kan der så stå et tal)
disc (her kan der så stå et tal)
dvd (her kan der så stå et tal)
cd (her kan der så stå et tal)

preg_match_all("nu mangler jeg bare koden her til", $strTitle, $arrMatches)

så den selv kan finde ud af det..
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:22 #9
og her er den kode til parenteserne ( )
"-(\(.*?)\)-"
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:34 #10
her er nogle flere eksempler..

org_title = Flintstones Cd1
new_title = Flintstones
comment = Cd1

org_title = Flintstones Cd5
new_title = Flintstones
comment = Cd5

org_title = Flintstones Cd 23
new_title = Flintstones
comment = Cd 23

org_title = Flintstones dvd 1
new_title = Flintstones
comment = dvd 1

org_title = Flintstones dvd21
new_title = Flintstones
comment = dvd21

org_title = Flintstones disk 1
new_title = Flintstones
comment = disk 1

org_title = Flintstones disk8
new_title = Flintstones
comment = disk8

org_title = Flintstones disc2
new_title = Flintstones
comment = disc2

org_title = Flintstones disc 2
new_title = Flintstones
comment = disc 2

osv..
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 09:39 #11
Ja, så skal vi bare have nogle repræsentative eksempler, og hvad du ønsker, der skal komme ud af det...

"Flintstones" - det kan vel også være flere ord?
Du snakkede om parenteser - jeg ser ikke nogen?
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:48 #12
se nu lige her:

Kommentar: sjh
01/10-2005 00:44:01

Kommentar: sjh
01/10-2005 00:49:18


fx. Flintstones (børnefilm)

title = Flintstones
comment = (børnefilm)

fx. Flintstones (Disk 1)

title = Flintstones
comment = (Disk 1)


Jeg kan jo ikke skrive 1000 filmtitler..
Avatar billede sjh Nybegynder
01. oktober 2005 - 09:50 #13
er det så det her du mener..


org_title = Flintstones disc 2 (fed film)
new_title = Flintstones
comment = disc 2 (fed film)

org_title = Flintstones (fed film) disc 2
new_title = Flintstones
comment = (fed film) disc 2
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 09:51 #14
Nej, men jeg kan heller ikke bruge min tid på noget jeg ikke kan overskue. Derfor beder jeg om en præcis definition af hvad du skal have lavet om, og til hvad.
Avatar billede sjh Nybegynder
01. oktober 2005 - 10:01 #15
Jeg skal bruge noget kode som kan klippe (cut) i det som står i $org_title

$org_title = "Flintstones disc 2";

Sådan så jeg får det ud sådan:

$new_title = "Flintstones"; //-- (Ny variable $new_title)
$comment = "disc 2"; //-- (Ny variable $comment)

echo $new_title." ".$comment; //-- det her vil give det samme som $org_title..

Jeg kan da ikke se at det kan være så svært.. men der skal måske flere point på bordet??
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 10:18 #16
Jeg samler slet ikke på point, så det er ligemeget.
Men jeg må gentage: du skal definere præcist hvad der skal oversættes fra og hvad det skal blive til. Jeg kan ikke se det endnu, beklager.
Avatar billede sjh Nybegynder
01. oktober 2005 - 10:48 #17
Jeg har engang lavet et websted hvor man kunne skrive sine film ind.. har så fundet ud af at flere bruger
har skrævet ord i titlen som fx. "Disk 1, DVD 1, CD 1" eller hvad de nu kunne finde på.. (En jeg har lånt),
(Min mors film), (Sjov film) osv..

Alt den tekst vil jeg godt ha flyttet til et andet field (comment) i min database,
og skal fjernet det fra titlen og over i comment..

Det er så her preg_match_all() kommer ind.. den kan jo "match" de ord som jeg skal ha over i comment..
men det kan jeg altså ikke få til at spille..


Håber i/du kan se hvad jeg mener..
Avatar billede sjh Nybegynder
01. oktober 2005 - 11:20 #18
<?php
  $title = "Flintstones (noget tekst) Disk1 Disk22 CD33 Disk 1 Disk 22 CD 33";
  if (preg_match_all("-(\(.*?)\)|disk[^0\-9]|disc[^0\-9]|dvd[^0\-9]|cd[^0\-9]-is", $title, $arrMatches)) {
    $arrComment = $arrMatches[0];
    foreach ($arrComment as $strItems) {
      $comment .= " ".$strItems;
      $title = str_replace($strItems, "", $title);
    }
  }
  echo "title: ".$title."<br>";
  echo "comment: ".$comment."<br>";
?>


bliver til:

  title: Flintstones  2 3 1 22 33<br>
  comment:  (noget tekst) Disk1 Disk2 CD3 Disk  Disk  CD <br>



Men skulle blive til:

  title: Flintstones <br>
  comment:  (noget tekst) Disk1 Disk22 CD33 Disk 1 Disk 22 CD 33 <br>



Hvad er det jeg gør forkert??
Avatar billede sjh Nybegynder
01. oktober 2005 - 11:56 #19
Nu har jeg fået den til at virke.. men kan det ikke gøres nemmer??


<?php
  $title = "Flintstones (noget tekst) Disk1 Disk22 CD33 Disk 1 Disk 22 CD 33";
  if (preg_match_all("/(\(.*?)\)|disk([0-9]+)|disc([0-9]+)|dvd([0-9]+)|cd([0-9]+)|disk ([0-9]+)|disc ([0-9]+)|dvd ([0-9]+)|cd ([0-9]+)/is", $title, $arrMatches)) {
    $arrComment = $arrMatches[0];
    foreach ($arrComment as $strItems) {
      $comment .= " ".$strItems;
      $title = str_replace($strItems, "", $title);
    }
  }
  echo "title: ".$title."<br>";
  echo "comment: ".$comment."<br>";
?>
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 12:16 #20
disk ([0-9]+)|disk([0-9]+)

kan bedre samles til

disk\s*([0-9]+)
Avatar billede sjh Nybegynder
01. oktober 2005 - 12:44 #21
Ja da kan du jo bare se.. det var jo ikke så svært vel..

smid et svar..
Avatar billede sjh Nybegynder
01. oktober 2005 - 12:45 #22
erikjacobsen smid et svar..
Avatar billede erikjacobsen Ekspert
01. oktober 2005 - 13:01 #23
Jeg samler som sagt slet ikke på point, tak
Avatar billede sjh Nybegynder
01. oktober 2005 - 13:05 #24
hmm.. det må du så også selv om..

men endnu en gang tak for hjælpen.. :D
Avatar billede grace45 Nybegynder
22. oktober 2010 - 19:39 #25
Hej min kære,
Hvordan har du i dag, jeg håber, at alle er godt med dig. Jeg er ked af at bekymre dig med min Forslag til et forhold med dig, men jeg ved, at du vil imødekomme min anmodning i god tro og forståelse. Jeg har brug for dig i forretningsbetingelser og rådgive. Mit navn er Grace Dabah jeg bare gik gennem din profil har ingen andre muligheder end at lade dig vide, at jeg er interesseret i at have et forhold med dig, vil jeg også gerne vide dig mere, kan du sende en mail til min e-mail adresse (grace_11dabah @ yahoo.com), så jeg kan sende dig flere oplysninger om mig selv inklusive mit billede. Jeg tror, vi kan gå herfra. Men huske på, at kærlighed ikke har nogen farver barriere, ingen uddannelsesmæssige tilbage jorden barriere, ingen socio-økonomiske barrierer, religiøse, sprog, nationalitet eller afstand hindring, det eneste vigtige der er kærlighed. Jeg venter på din mail til min e-mail adresse ovenfor.
Med venlig hilsen,
Miss Grace.
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