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
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
25. september 2007 - 21:21
#1
Sådan? preg_replace("/^ (.*)/", "<b>$1</b>", $dinTekst);
25. september 2007 - 21:31
#2
virker ikke
25. september 2007 - 21:36
#3
Kan du være lidt mere specifik?
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.
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...
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.
25. september 2007 - 22:10
#7
Har du et eksempel på noget kode? Det burde nemlig fungere som vist.
26. september 2007 - 01:18
#8
$dinTekst = preg_replace("/^ (.*)/", "<b>$1</b>", $dinTekst); blot et vildt gæt...
26. september 2007 - 01:18
#9
/^ (.*)/m så bliver udtrykket også multiline
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.
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.
26. september 2007 - 16:45
#12
Lækkert. Kan jeg også få fjernet mellemrummene?
26. september 2007 - 16:46
#13
og læg et svar
26. september 2007 - 17:00
#14
$dinTekst = preg_replace_callback("/^( .*?)^(?! )/ms", create_function('$matches', 'return "<b>".preg_replace("/^ /m", "", $matches[0])."</b>";'), $dinTekst);
26. september 2007 - 17:02
#15
kan det ikke gøres smartere? :/
26. september 2007 - 17:02
#16
og husk et svar.
26. september 2007 - 17:13
#17
Jeg synes da det er meget smart. Det kan være nielle er smartere end mig... :-)
26. september 2007 - 18:56
#18
Mit uprøvede bud på at være smartere ;^) : $dinTekst = preg_replace("/^ (.*?)^(?! )/ms", "<b>$1</b>", $dinTekst);
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 :)
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. :^)
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 ;)
27. september 2007 - 16:44
#22
Jeg står over på denne her, men ellers tak for tilbudet. :^)
Vi tilbyder markedets bedste kurser inden for webudvikling