Zdravím, mám dlouhý regex a ten se dělí na více částí a po porovnání s textem potřebuji vědět která část výrazu se s textem shoduje.
Příklad:
<?php
$text = 'Ahoj svete! No nic, ja jdu, tak nazdar!';
$regex = '/(?:ahoj|cau|nazdar)/i';
preg_match_all($regex, $text, $matches);
print_r($matches);
?>
Vrací:
Array
(
[0] => Array
(
[0] => Ahoj
[1] => nazdar
)
)
Ale já potřebuji, abych měl ve výsledcích nějakou identifikaci té části výrazu, se kterým se ten který výsledek shoduje. Tzn. třeba něco jako:
$text = 'Ahoj svete! No nic, ja jdu, tak nazdar!';
$regex = '/(?:(?#454)ahoj|(?#455)cau|(?#456)nazdar)/i';
preg_match_all($regex, $text, $matches);
print_r($matches);
aby vrátilo:
Array
(
[0] => Array
(
[0] => Array
(
[0] => Ahoj
[1] => 454
)
[0] => Array
(
[0] => nazdar
[1] => 456
)
)
)
... nebo tak něco :D Nenapadá vás nějaké řešení?