[PHP/RegExp] Komma escapen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil een string splitsen op de komma + zorgen dat komma's met een escape ervoor worden genegeerd. Ik heb al wat geprobeerd, maar dat werkte niet. Ik hoop dat jullie mij uit de brand kunnen helpen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$test = "test1, test2\, test3, test4, test5";

print_r(preg_split("/[^\\\],/", $test));

//Output:
Array
(
    [0] => test
    [1] => test2[escape-teken], test
    [2] => test
    [3] => test5
)

//Output zou moeten zijn:
Array
(
    [0] => test1
    [1] => test2[escape-teken], test3
    [2] => test4
    [3] => test5
)

[ Voor 7% gewijzigd door Verwijderd op 25-08-2004 13:23 ]


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Lookbehind assert?

/(?<!\\),/

http://www.php.net/manual...gexp.reference.assertions

(niet getest overigens, mischien dat je er zo uitkomt)

edit: ff foute syntax srry

edit2:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$test = "test1, test2\, test3, test4, test5";

print_r(preg_split("/(?<!\\\\),/", $test));

/*
Array
(
    [0] => test1
    [1] =>  test2\, test3
    [2] =>  test4
    [3] =>  test5
)
*/
?>

[ Voor 52% gewijzigd door Michali op 25-08-2004 14:43 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Michali schreef op 25 augustus 2004 @ 14:31:
Lookbehind assert?

/(?<!\\),/

http://www.php.net/manual...gexp.reference.assertions

(niet getest overigens, mischien dat je er zo uitkomt)

edit: ff foute syntax srry
Het werkt! Bedankt! Je moet trouwens wel '\\\' i.v.p. '\\' gebruiken.

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Check edit2 /\ /\ /\ :)

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Waarom 4 escapes gebruiken als 3 ook werkt?

Acties:
  • 0 Henk 'm!

  • commeric
  • Registratie: November 2002
  • Laatst online: 14-08 22:32
Als het niet lukt met een regex zou je het wat omslachtiger kunnen doen door hem eerst te exploden op alle , en vervolgens met substr elke value van de array checken of het laatste teken een \ is en in dat geval de 2 values weer aanelkaar fixxen
Pagina: 1