PHP - regexp - linebreaks - problem!

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Ok - så här är det:

jag har en regexp som söker efter följande text i en sträng:

*** text ***

vad som helst mellan denna header och footer. Kan vara jättemånga rader.

### text ###

För att hitta det som står mellan headern och footern (som är konstanta) använder jag mig av den enkla regexpen .*, det vill säga "hur många som helst upprepningar av vilket tecken som helst".

Problemet är att den inte fungerar med annat än macintosh-radbrytningar. Om jag slår om från macintosh till UNIX så hittar inte regexpen några träffar längre.

Vad beror detta på, och hur löser jag det?

Snabba svar välkomna,

/.scooter

  • Medlem
  • Nacka
  • 2004-12-13 16:51

. är ju alla tecken utom ny-rad-tecken!

Testa

[.\n\r]+

Jo, det slog mig med

Därför fungerade det med Macintosh-linjeskiften, eftersom inte regexpen känner av dem. Och eftersom jag inte fick ihop regexpen för linjeskift, ersatte jag unix-linjeskiftena med macintosh-diton och så körde det.

Om regexpen är skapad med multiline-modifikatorn så matchar "." även radbrytningar. I ruby och perl fixar man det genom att ha "m" som suffix (t.ex. "/.*/m"), men jag vet inte hur man åstadkommer detsamma i php.

1
Bevaka tråden