<?php
$query = "-exclude -\"exclude phrase\" \"phrase 1\" keyword +k:v -k2:v2 +\"q kw:2";
$ATOM_REGEX = '"[^"]+"|[^"\s]+';
preg_match_all("/(?P<flag>[-+])?(?P<key>$ATOM_REGEX:)?(?P<value>$ATOM_REGEX)/", $query, $match);
print_r($match);
- Output for 4.3.3 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- Array
(
[0] => Array
(
[0] => -exclude
[1] => -"exclude phrase"
[2] => "phrase 1"
[3] => keyword
[4] => +k:v
[5] => -k2:v2
[6] => +
[7] => q
[8] => kw:2
)
[flag] => Array
(
[0] => -
[1] => -
[2] =>
[3] =>
[4] => +
[5] => -
[6] =>
[7] =>
[8] =>
)
[1] => Array
(
[0] => -
[1] => -
[2] =>
[3] =>
[4] => +
[5] => -
[6] =>
[7] =>
[8] =>
)
[key] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] => k:
[5] => k2:
[6] =>
[7] =>
[8] => kw:
)
[2] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] => k:
[5] => k2:
[6] =>
[7] =>
[8] => kw:
)
[value] => Array
(
[0] => exclude
[1] => "exclude phrase"
[2] => "phrase 1"
[3] => keyword
[4] => v
[5] => v2
[6] => +
[7] => q
[8] => 2
)
[3] => Array
(
[0] => exclude
[1] => "exclude phrase"
[2] => "phrase 1"
[3] => keyword
[4] => v
[5] => v2
[6] => +
[7] => q
[8] => 2
)
)
- Output for 4.3.0 - 4.3.2
- Array
(
[0] => Array
(
[0] => -exclude
[1] => -"exclude phrase"
[2] => "phrase 1"
[3] => keyword
[4] => +k:v
[5] => -k2:v2
[6] => +
[7] => q
[8] => kw:2
)
[1] => Array
(
[0] => -
[1] => -
[2] =>
[3] =>
[4] => +
[5] => -
[6] =>
[7] =>
[8] =>
)
[2] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] => k:
[5] => k2:
[6] =>
[7] =>
[8] => kw:
)
[3] => Array
(
[0] => exclude
[1] => "exclude phrase"
[2] => "phrase 1"
[3] => keyword
[4] => v
[5] => v2
[6] => +
[7] => q
[8] => 2
)
)
preferences:
257.55 ms | 403 KiB | 357 Q