bug70232.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. --TEST--
  2. Bug #70232 (Incorrect bump-along behavior with \K and empty string match)
  3. --SKIPIF--
  4. <?php
  5. if (version_compare(explode(' ', PCRE_VERSION)[0], '8.0', 'lt')) {
  6. die("skip this test requires libpcre >= 8.0");
  7. }
  8. ?>
  9. --FILE--
  10. <?php
  11. $pattern = '~(?: |\G)\d\B\K~';
  12. $subject = "123 a123 1234567 b123 123";
  13. preg_match_all($pattern, $subject, $matches);
  14. var_dump($matches);
  15. var_dump(preg_replace($pattern, "*", $subject));
  16. var_dump(preg_split($pattern, $subject));
  17. ?>
  18. --EXPECT--
  19. array(1) {
  20. [0]=>
  21. array(10) {
  22. [0]=>
  23. string(0) ""
  24. [1]=>
  25. string(0) ""
  26. [2]=>
  27. string(0) ""
  28. [3]=>
  29. string(0) ""
  30. [4]=>
  31. string(0) ""
  32. [5]=>
  33. string(0) ""
  34. [6]=>
  35. string(0) ""
  36. [7]=>
  37. string(0) ""
  38. [8]=>
  39. string(0) ""
  40. [9]=>
  41. string(0) ""
  42. }
  43. }
  44. string(35) "1*2*3 a123 1*2*3*4*5*6*7 b123 1*2*3"
  45. array(11) {
  46. [0]=>
  47. string(1) "1"
  48. [1]=>
  49. string(1) "2"
  50. [2]=>
  51. string(8) "3 a123 1"
  52. [3]=>
  53. string(1) "2"
  54. [4]=>
  55. string(1) "3"
  56. [5]=>
  57. string(1) "4"
  58. [6]=>
  59. string(1) "5"
  60. [7]=>
  61. string(1) "6"
  62. [8]=>
  63. string(8) "7 b123 1"
  64. [9]=>
  65. string(1) "2"
  66. [10]=>
  67. string(1) "3"
  68. }