Avatar billede michael_k Nybegynder
23. april 2013 - 22:51 Der er 12 kommentarer og
1 løsning

Hjælp til preg

Hej.

Jeg skal have lavet et preg, som kan udlæse teksten "dato" + datoen fra en tekst.

Her har jeg lavet et par eksempler, som viser hvad jeg mener med ovenstående.

Eksempel 1
'dags dato 23.04.2013' -> Her skal preg udlæse: dato 23.04.2013

Eksempel 2
'fakturaen har en dato, som er den 03-05-2013' -> Her skal samme preg udlæse: dato 03.05.2013.

Eksempel 3
'Lorem ipsum dolor sit amet, consectetur adipiscing elit dato 1125436 Lorem ipsum 23.04.2013' -> Her skal samme preg udlæse: dato 23.04.2013.

Håber du kan hjælpe.
Avatar billede olebole Juniormester
23. april 2013 - 23:22 #1
<ole>

Noget i stil med:

'/(dato).+?(\d{2}\.\d{2}\.\d{4})/'

/mvh
</bole>
Avatar billede arne_v Ekspert
24. april 2013 - 03:51 #2
Jeg vil tro at:

\b\d{2}[.-/]\d{2}[.-/]\d{4}\b

vil give et godt resultat.
Avatar billede olebole Juniormester
24. april 2013 - 14:30 #3
Arhhh ... jeg overså vist eksempel 2  =)
Avatar billede michael_k Nybegynder
24. april 2013 - 19:05 #4
Hej Arne.

Først mange tak for svaret.

Når jeg bruger den preg du har lavet får jeg følgende meddelse:
Unknown modifier ']'

Jeg bruger preg'en i således:
preg_match_all('/\b\d{2}[.-/]\d{2}[.-/]\d{4}\b/',$str,$matched);
Avatar billede michael_k Nybegynder
24. april 2013 - 19:09 #5
Hej Ole.

Mange tak for dit forslag!

Jeg kan godt bruge den preg du har lavet, men som du selv skriver, så tager den ikke højde for eksempel 2 med "xx-xx-xxxx"

Endvidere fjerner den heller ikke tegnen mellem "dato" og xx.xx.xxxx

altså skriver udleder den følgende fra eksempel 3:
"dato 1125436 Lorem ipsum 23.04.2013" og ikke "dato 23.04.2013"

Kan du se hvordan dette kan rettes til?

På forhånd mange tak!
Avatar billede arne_v Ekspert
24. april 2013 - 19:12 #6
proev og erstat [.-/] med [.-//]
Avatar billede michael_k Nybegynder
24. april 2013 - 20:10 #7
Hej Arne.

Tak for den hurtige tilbagemelding.
Jeg har prøvet dit forslag, men får følgende fejl:
Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash.
Avatar billede olebole Juniormester
24. april 2013 - 20:28 #8
proev og erstat [.-/] med [.-\/]  *o)
Avatar billede olebole Juniormester
24. april 2013 - 20:30 #9
I stedet kan du bruge hashmark som delimiter. Så slipper du for at escape slashes:

preg_match_all('#\b\d{2}[.-/]\d{2}[.-/]\d{4}\b#',$str,$matched);
Avatar billede michael_k Nybegynder
24. april 2013 - 22:15 #10
Tak for begge jeres løsningsforslag.
De har begge givet mig en ide om, hvordan mit preg skal se ud.
Da det er oleboles svar, jeg bedst har kunne bruge, vil jeg give ham pointene, hvis du smider et svar.
Avatar billede olebole Juniormester
24. april 2013 - 22:24 #11
Ellers tak, jeg samler ikke point. De må være Arnes  =)
Avatar billede michael_k Nybegynder
24. april 2013 - 22:51 #12
Arne vil du smide et svar, så får du pointene.
Avatar billede arne_v Ekspert
25. april 2013 - 03:34 #13
Tjo.

Hvad endte du op med?
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