eregi whitespace detection problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Frank

    eregi whitespace detection problem

    I'm having trouble detecting whitespaces in strings.

    Set up this test:

    echo "<br>exampl e 1:".intval(ereg i("^\s","testst ring"));
    echo "<br>exampl e 2:".intval(ereg i("^\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

    #2
    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>exampl e 1:".intval(ereg i("^\s","testst ring"));
    >echo "<br>exampl e 2:".intval(ereg i("^\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>exampl e 3:".intval(ereg i("^\s","stri ng 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.



    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.andyhsoftwa re.co.uk/space> Space: disk usage analysis tool

    Comment

    • Frank

      #3
      Re: eregi whitespace detection problem

      Thanks Andy! You're a timesaver!

      Frank

      "Andy Hassall" <andy@andyh.co. uk> schreef in bericht
      news:i797o0hi5i tqt2id6ku6nr5c4 v4vae8g4p@4ax.c om...[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>exampl e 1:".intval(ereg i("^\s","testst ring"));
      >>echo "<br>exampl e 2:".intval(ereg i("^\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>exampl e 3:".intval(ereg i("^\s","stri ng 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.andyhsoftwa re.co.uk/space> Space: disk usage analysis tool[/color]


      Comment

      Working...