Connecting Tech Pros Worldwide Help | Site Map

eregi whitespace detection problem

Frank
Guest
 
Posts: n/a
#1: Jul 17 '05
I'm having trouble detecting whitespaces in strings.

Set up this test:

echo "<br>example 1:".intval(eregi("^\s","teststring"));
echo "<br>example 2:".intval(eregi("^\s","test string"));

Both resulting in 0 (zero)

also tried [:space:] and [:blank:] without result

Who can help this regular newbie expressing himself ?


Andy Hassall
Guest
 
Posts: n/a
#2: Jul 17 '05

re: eregi whitespace detection problem


On Sat, 30 Oct 2004 15:53:11 +0200, "Frank" <frankdegrauwe@hotmail.com> wrote:
[color=blue]
>I'm having trouble detecting whitespaces in strings.
>
>Set up this test:
>
>echo "<br>example 1:".intval(eregi("^\s","teststring"));
>echo "<br>example 2:".intval(eregi("^\s","test string"));
>
>Both resulting in 0 (zero)[/color]

Which is correct. Your pattern is looking for:

^ - start of line
\s - followed by the literal string 's'

Consider:

echo "<br>example 3:".intval(eregi("^\s","string test"));

Output:

example 3:1

Because that does start with an 's'.
[color=blue]
>also tried [:space:] and [:blank:] without result
>
>Who can help this regular newbie expressing himself ?[/color]

For starters don't use ereg, use the preg functions, they're better for
numerous reasons.

http://uk.php.net/manual/en/ref.pcre.php

It looks like you're already trying to use Perl-compatible expressions, since
you used \s. This would work if you used preg_match, as \s means whitespace in
Perl-compatible expressions, but not in POSIX expressions (as used by ereg).
You then just need to remove the leading ^.

--
Andy Hassall / <andy@andyh.co.uk> / <http://www.andyh.co.uk>
<http://www.andyhsoftware.co.uk/space> Space: disk usage analysis tool
Frank
Guest
 
Posts: n/a
#3: Jul 17 '05

re: eregi whitespace detection problem


Thanks Andy! You're a timesaver!

Frank

"Andy Hassall" <andy@andyh.co.uk> schreef in bericht
news:i797o0hi5itqt2id6ku6nr5c4v4vae8g4p@4ax.com...[color=blue]
> On Sat, 30 Oct 2004 15:53:11 +0200, "Frank" <frankdegrauwe@hotmail.com>
> wrote:
>[color=green]
>>I'm having trouble detecting whitespaces in strings.
>>
>>Set up this test:
>>
>>echo "<br>example 1:".intval(eregi("^\s","teststring"));
>>echo "<br>example 2:".intval(eregi("^\s","test string"));
>>
>>Both resulting in 0 (zero)[/color]
>
> Which is correct. Your pattern is looking for:
>
> ^ - start of line
> \s - followed by the literal string 's'
>
> Consider:
>
> echo "<br>example 3:".intval(eregi("^\s","string test"));
>
> Output:
>
> example 3:1
>
> Because that does start with an 's'.
>[color=green]
>>also tried [:space:] and [:blank:] without result
>>
>>Who can help this regular newbie expressing himself ?[/color]
>
> For starters don't use ereg, use the preg functions, they're better for
> numerous reasons.
>
> http://uk.php.net/manual/en/ref.pcre.php
>
> It looks like you're already trying to use Perl-compatible expressions,
> since
> you used \s. This would work if you used preg_match, as \s means
> whitespace in
> Perl-compatible expressions, but not in POSIX expressions (as used by
> ereg).
> You then just need to remove the leading ^.
>
> --
> Andy Hassall / <andy@andyh.co.uk> / <http://www.andyh.co.uk>
> <http://www.andyhsoftware.co.uk/space> Space: disk usage analysis tool[/color]


Closed Thread