Doc #67576 [NEW]: regular expression example error

From: Date: Sat, 05 Jul 2014 15:21:15 +0000
Subject: Doc #67576 [NEW]: regular expression example error
Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-11335@lists.php.net to get a copy of this message
From: jhpx at hotmail dot com Operating system: Windows PHP version: 5.4.30 Package: Translation problem Bug Type: Documentation Problem Bug description:regular expression example error Description: ------------ --- From manual page: http://www.php.net/regexp.reference.subpatterns --- In this paragraph: "比如, 如果字符串 ”the white queen” 匹配模式 ((?:red|white) (king|queen)),匹配到的结果会是 array(“white queen”、“white queen”、“white queen”),的和 king|queen 这两个子组。 捕获子组序号的最大值是 99, 最大允许拥有的所有子组(包括捕获的和非捕获的)的最大数量为 200。" First, the result is wrong. It should be array("white queen"、"white queen"、"queen"). Second, the sentence "的和 king|queen这两个子组" is wrong in Chinese syntax. Third, the maximum number of captured substrings is also wrong. I can't read languages other than English, Chinese and Japanese. But I find the semantic about this paragragh is different in these three language pages. The maximum number of captured substrings is 65535 in English, 6553599 in Japanese and 99 in Chinese. The right number must be limited by the regular expression size. In my test, 6552 is the right one. Test script: --------------- $test = 'the white queen'; if (preg_match('/((?:white|red) (king|queen))/', $test, $regs)) { echo print_r($regs); } else { echo 'Not find'; } $test2 = str_repeat('a',10000); if (preg_match('/'.str_repeat('(a)',6552).'/', $test2, $regs2)) { echo print_r($regs2); } else { echo 'Not find'; } Expected result: ---------------- "比如, 如果字符串 ”the white queen” 匹配模式 ((?:red|white) (king|queen)),匹配到的结果会是 array(“white queen”、“white queen”、“queen”)。第二个“white queen”与最后的“queen”分别是最外层的子组((?:red|white) (king|queen))与(king|queen)的匹配结果,下标为1与2。捕获子组序号受正则表达式的长度限制,最大值是6552。" Actual result: -------------- "比如, 如果字符串 ”the white queen” 匹配模式 ((?:red|white) (king|queen)),匹配到的结果会是 array(“white queen”、“white queen”、“white queen”),的和 king|queen 这两个子组。 捕获子组序号的最大值是 99, 最大允许拥有的所有子组(包括捕获的和非捕获的)的最大数量为 200。" -- Edit bug report at https://bugs.php.net/bug.php?id=67576&edit=1 --

« previous php.doc.bugs (#11335) next »