#49384 [Opn->Bgs]: preg_match incorreclty matching vertical tab character
| From: | jani@php.net | Date: | Sat, 29 Aug 2009 00:29:48 +0000 |
| Subject: | #49384 [Opn->Bgs]: preg_match incorreclty matching vertical tab character | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-141679@lists.php.net to get a copy of this message | ||
ID: 49384
Updated by: jani@php.net
Reported By: soham dot mehta at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: PCRE related
Operating System: x86_64 GNU/Linux
PHP Version: 5.2.10
New Comment:
You should use double quotes instead. Now you're not matching vertical
tab but \v.
Previous Comments:
------------------------------------------------------------------------
[2009-08-27 09:53:50] soham dot mehta at gmail dot com
Description:
------------
In preg_match (and preg_replace), vertical tab character matches
characters other than itself. At the least, it matches ascii 10,11,12,13
and 133, when it should only match 11.
(Vertical tab has been nixed from PCRE - is that the cause?)
Reproduce code:
---------------
$wrong = chr(133); //can use any of 10,12,13 or 133
$x = preg_match('/\v/', $wrong, $matches,
PREG_OFFSET_CAPTURE);
var_dump($matches);
$right = chr(11);
$x = preg_match('/\v/', $right, $matches,
PREG_OFFSET_CAPTURE);
var_dump($matches);
Expected result:
----------------
array
empty
array
0 =>
array
0 => string '' (length=1)
1 => int 0
Actual result:
--------------
array
0 =>
array
0 => string '�' (length=1)
1 => int 0
array
0 =>
array
0 => string '' (length=1)
1 => int 0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49384&edit=1