Regular expressions - ny rad efter nummer

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Höganäs
  • 2009-02-09 22:54

Hej

Har precis noll koll på regular expressions och hoppas någon kan hjälpa mig...
Vad jag behöver hjälp:

Detta:
7 - 14 jun

ska bli detta:

7 - 14
jun

Likaså ska
7-14 jun
bli

7 - 14
jun

(alltså ny rad m.h.a br-tagg i HTML)

Miljö: PHP.

  • Medlem
  • Sundsvall
  • 2009-02-10 18:16

preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$sträng);

du kan testa med
$strings = array("7 - 14 jun","7-14 jun");
foreach ($strings as $str) { echo preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$str); }
Det ska fungera.

Mönstret '/(\d+)\s?-\s?(\d+)\s(.*)$/' matchar bara de två fall du listade, $ sist i mönstret går på radslut också så kommer det nåt mer efter "jun" i exemplen kommer det inte matcha!

  • Medlem
  • Höganäs
  • 2009-02-10 19:51
Ursprungligen av mrjane:

preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$sträng);

du kan testa med
$strings = array("7 - 14 jun","7-14 jun");
foreach ($strings as $str) { echo preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$str); }
Det ska fungera.

Mönstret '/(\d+)\s?-\s?(\d+)\s(.*)$/' matchar bara de två fall du listade, $ sist i mönstret går på radslut också så kommer det nåt mer efter "jun" i exemplen kommer det inte matcha!

Stort tack! Detta räcker gott.
/M

1
Bevaka tråden