ugrás a tartalomhoz

Bekezdesek torlese

zoliky · 2008. Aug. 20. (Sze), 11.06
Van egy kerdoiv, amely egy valtozoban van tarolva:

1. Kerdes
  A: Megoldas
  B: Megoldas2
  C: Megoldas3
Szeretnem a "preg_replace" fugvenyel kiszedni a bekezdeseket, igy szeretnem ha kinezne:

1. Kerdes
A: Megoldas
B: Megoldas2
C: Megoldas3
Valaki meg tudna mondani milyen regexp-et kell hasznalni, hogy a bekezdeseket levagjam ? Mindegyik bekezdes kb. 4 space de van tobb space is egyes kerdeseknel, szoval oszeviszasag van.

Elore is koszonom!
 
1

Whitespace levágása

Poetro · 2008. Aug. 20. (Sze), 15.03
trim($text), ltrim($text), preg_replace('!^\s+!', '', $text);
Amennyiben több sorosak is lehetnek a kérdések, akkor az első két esetben sorokra kell törni, és a sorokon végignenve lefuttatni a trim-et. preg_replace esetén pedig csak hozzá kell rakni az 'm' módosítót a reguláris kifejezéshez.
2

koszi

zoliky · 2008. Aug. 20. (Sze), 18.03
erdekes dolog tortenik:

1. Kerdes[enter]
  a: valasz1[enter]
  b: valasz2[enter]
Csak az elso sort orvosolja a regexp, a masodik meg a harmadik sorra nem ervenyes. Talan az enter lenyomasa az elso sor utan a problema ?
a fajl tartalmat igy olvasom be: file_get_contents('kerdesek.txt');
3

Többsoros

Poetro · 2008. Aug. 20. (Sze), 19.02
Mivel többsoros a szöveged, írtam, használd az 'm' módosítót:
preg_replace('!^\s+!m', '', $text);
4

kicsi problema

zoliky · 2008. Aug. 20. (Sze), 19.12
Koszonom mukodik. A kovetkezobol:
1. Kerdes
  a: valasz1
  b: valasz2

2. Kerdes2
  a: valasz1
  b: valasz2
ez lett:
1. Kerdes
a: valasz1
b: valasz2
2. Kerdes2
a: valasz1
b: valasz2
Az egyetlen gond az, hogy az elso kerdes es a masodik kozott nincs egy ures sor! Valahogy megmondhatom a regexp-nek, hogy minden sor elejen ahol egy szam van 1., 2., 3. formatumban eleje rakjon egy ures sort ?
5

Poetro megoldása átírva

fchris82 · 2008. Aug. 22. (P), 08.21
preg_replace("!^\s+(\D)!m", "\\1", $text);
Ez csak azoknál a soroknál cseréli le az üres karaktereket, ahol nem szám a következő karakter.
6

koszi!

zoliky · 2008. Aug. 22. (P), 18.12
huuuu....koszonom! ez tenyleg nagyon hasznos es mukodik!
ha tudnal meg segiteni valamivel nagyon meghalalnam, igerem ez lesz az utolso kerdesem:

Itt vannak a kerdesek es a valaszok:

1. Kerdes
A: valasz
B: valasz
C: valasz
2. Kerdes2
A: valasz2
B: valasz2
C: valasz2
Meg lehet azt mondani a regexnek (egy kulon preg_replace-ban), hogy neze meg a szamokat, peldaul 1. 2.
es neze meg ha a szamok elott van egy ures sor, ha nincs akkor szurjon be egyet. Vegul igy nezen ki:

1. Kerdes
A: valasz
B: valasz
C: valasz

2. Kerdes2
A: kerdes2
B: kerdes2
C: kerdes2
Ha ezt megoldom tenyleg nagyon halas leszek! Elore is koszonom!
7

Előzőek alapján

Poetro · 2008. Aug. 22. (P), 19.28
Szerintem az előzőek alapján már illene kitalálni a megoldást, vagy legalább leírni hogy eddig mivel próbálkoztál, és melyikkel milyen sikerrel.
8

ok

zoliky · 2008. Aug. 22. (P), 20.39
ok, megprobalom :( azt megmondhatod, hogy az "\\1" mit csinal ?
9

Lásd dokumentácio

Poetro · 2008. Aug. 22. (P), 20.55
Lásd http://php.net/preg_replace replacement része.