Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

regexp til at escape

0 views
Skip to first unread message

Leif Neland

unread,
Jul 1, 2009, 5:19:24 AM7/1/09
to
Er der en mere elegant metode til at escape nogle tegn?

En streng med tegn, der skal escapes; er specialtegnene i source-strengen,
skal der s�ttes et escapetegn foran.

I dette tilf�lde er specialtegnene :+' og escape er ?

Jeg har den h�ndlavede udgave her, men det m� da kunne g�res smartere med en
regexp.

$s = str_replace(array(":","+","'","?"),array("?:","?+","?'","??"),$s);

Skal det laves variabelt, er det

$segterm="'";
$elmterm="+";
$compterm=":";
$relind="?";

$s = str_replace(array($segterm,$elmterm,$compterm,$relind),
array($segterm.$relind,$elmterm.$relind,$compterm.$relind,$relind.$relind),
$s);

Men kan det ikke laves smukkere med en regexp? :-)Leif


Dan Storm

unread,
Jul 1, 2009, 5:42:44 AM7/1/09
to
Leif Neland skrev:

> Men kan det ikke laves smukkere med en regexp? :-)Leif

$string = ereg_replace("([\:\+])", "?\\1", $string);

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Dan Storm

unread,
Jul 1, 2009, 5:43:55 AM7/1/09
to
Dan Storm skrev:

> Leif Neland skrev:
>> Men kan det ikke laves smukkere med en regexp? :-)Leif
>
> $string = ereg_replace("([\:\+])", "?\\1", $string);
>

Men det der tog kun : og +. Du skal lige have ' med:

$string = ereg_replace("([\:\+\'])", "?\\1", $string);

S�ledes...

Preben

unread,
Jul 1, 2009, 6:00:34 PM7/1/09
to
Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:

> $string = ereg_replace("([\:\+\'])", "?\\1", $string);

'?' skal vel ogs� escapes?

Hvad var der i vejen med at bruge str_replace? Jeg mener at
str_replace er 4-5 gange hurtigere end ereg_replace. Hvis du skal
et stort array igennem, er der muligvis (afh�ngig af
array-st�rrelsen) adskillige sekunder at spare.

--
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- P�dagogiske tutorials p� dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm

unread,
Jul 2, 2009, 3:05:54 AM7/2/09
to
Preben skrev:

> Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
>> $string = ereg_replace("([\:\+\'])", "?\\1", $string);
>
> '?' skal vel ogs� escapes?

Ikke efter hvad OP skrev:


> I dette tilf�lde er specialtegnene :+' og escape er ?

> Hvad var der i vejen med at bruge str_replace? Jeg mener at
> str_replace er 4-5 gange hurtigere end ereg_replace. Hvis du skal
> et stort array igennem, er der muligvis (afh�ngig af
> array-st�rrelsen) adskillige sekunder at spare.

str_replace er ogs� hurtigere, men da OP ikke fort�ller om sit behov og
blot efterlyser en m�de at g�re det med regexp, s� f�r han jo det.

0 new messages