Avatar billede testwatest Nybegynder
25. september 2007 - 21:13 Der er 22 kommentarer

Regulært udtryk - fang tekst efter mellemrum

Hvordan kan jeg med regulære udtryk fange tekst der er rykket et mellemrum ind?

"Dette er min tekst

[mellemrum]her er en
[mellemrum]tekst der er
[mellemrum]rykket ind med
[mellemrum]et mellemrum
[mellemrum]...

..."

Så skal den fange al den tekst der er rykket ind i et mellemrum i EN streng, og sætte det i fed.

Håber det var til at forstå :D
Avatar billede nielle Nybegynder
25. september 2007 - 21:21 #1
Sådan?

preg_replace("/^ (.*)/", "<b>$1</b>", $dinTekst);
Avatar billede testwatest Nybegynder
25. september 2007 - 21:31 #2
virker ikke
Avatar billede nielle Nybegynder
25. september 2007 - 21:36 #3
Kan du være lidt mere specifik?
Avatar billede testwatest Nybegynder
25. september 2007 - 21:38 #4
Wikipedia har det også. Når man rykker teksten ind med et mellemrum, så ryger det ind i et tag.
Avatar billede nielle Nybegynder
25. september 2007 - 21:45 #5
Jeg mente "mere specifik på hvad du mente med at det ikke virkede"?

Hvad sker der? Hvad sker der ikke? Hvad forventede du at der skulle ske? Kom der en fejlbesked? Hvilken? Den slags ting...
Avatar billede testwatest Nybegynder
25. september 2007 - 22:09 #6
Den påvirker bare slet ikke teksten. Jeg havde forventet at teksten der var rykket ind med et mellemrum var blevet skrevet med fed tekst.
Avatar billede nielle Nybegynder
25. september 2007 - 22:10 #7
Har du et eksempel på noget kode? Det burde nemlig fungere som vist.
Avatar billede plx Nybegynder
26. september 2007 - 01:18 #8
$dinTekst = preg_replace("/^ (.*)/", "<b>$1</b>", $dinTekst);

blot et vildt gæt...
Avatar billede plx Nybegynder
26. september 2007 - 01:18 #9
/^ (.*)/m

så bliver udtrykket også multiline
Avatar billede testwatest Nybegynder
26. september 2007 - 11:10 #10
plx - "/^ (.*)/m" virker! Men hvis jeg har 2 linjer der er rykket ind, så sætter den 2 tags (altså et tag om hver linje). Jeg vil ha' et tag om ALT der er rykket ind.
Avatar billede plx Nybegynder
26. september 2007 - 12:35 #11
$dinTekst = preg_replace("/^( .*?)^(?! )/ms", "<b>$1</b>", $dinTekst);

den fortsætter, indtil den møder en ny linie, der ikke begynder med mellemrum. Hvis der kan forekomme tomme linie, i det der skal rykkes ind, går den i stykker.
Avatar billede testwatest Nybegynder
26. september 2007 - 16:45 #12
Lækkert. Kan jeg også få fjernet mellemrummene?
Avatar billede testwatest Nybegynder
26. september 2007 - 16:46 #13
og læg et svar
Avatar billede plx Nybegynder
26. september 2007 - 17:00 #14
$dinTekst =
  preg_replace_callback("/^( .*?)^(?! )/ms",
  create_function('$matches', 'return "<b>".preg_replace("/^ /m", "", $matches[0])."</b>";'),
  $dinTekst);
Avatar billede testwatest Nybegynder
26. september 2007 - 17:02 #15
kan det ikke gøres smartere? :/
Avatar billede testwatest Nybegynder
26. september 2007 - 17:02 #16
og husk et svar.
Avatar billede plx Nybegynder
26. september 2007 - 17:13 #17
Jeg synes da det er meget smart. Det kan være nielle er smartere end mig...

:-)
Avatar billede nielle Nybegynder
26. september 2007 - 18:56 #18
Mit uprøvede bud på at være smartere ;^) :

$dinTekst = preg_replace("/^ (.*?)^(?! )/ms", "<b>$1</b>", $dinTekst);
Avatar billede plx Nybegynder
26. september 2007 - 18:57 #19
Næsten og lige ved, men jeg kan kun se den snupper mellemrummet på første linie, ikke alle de efterfølgende :)
Avatar billede nielle Nybegynder
26. september 2007 - 19:05 #20
Ah, ja. Nej, testwatest, så er der vist ikke nogen smartere måde. Da der er flere steder hvor en skal fjernes er der behov for en slags løkke som fjerner hver af mellemrummene. Man kan vist godt gøre det uden preg_replace_callback() - men det bliver ikke mere simpelt af den grund. :^)
Avatar billede testwatest Nybegynder
26. september 2007 - 23:10 #21
okay. hvad så hvis jeg udelukkende vil ha 1 linje.

"Min tekst

[mellemrum]..

Mere tekst"

Det skal ende med at være præcis følgende resultat:

"Min tekst

<b>..</b>

Mere tekst"

Så mine tags skal være LIGE rundt om linjen, og ikke nedenunder eller lignende.

og smid et svar både plx og nielle ;)
Avatar billede nielle Nybegynder
27. september 2007 - 16:44 #22
Jeg står over på denne her, men ellers tak for tilbudet. :^)
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