I have preg_match_all('/[aäeëioöuáéíóú]/u', $in, $out, PREG_OFFSET_CAPTURE);
If $in = 'hëllo'
$out
is:
array(1) {
[0]=>
array(2) {
[0]=>
array(2) {
[0]=>
string(2) "ë"
[1]=>
int(1)
}
[1]=>
array(2) {
[0]=>
string(1) "o"
[1]=>
int(5)
}
}
}
The position of o
should be 4. I've read about this problem online (the ë
gets counted as 2). Is there a solution for this? I've seen mb_substr
and similar, but is there something like this for preg_match_all
?
Kind of related: Is their an equivalent of preg_match_all
in Python? (Returning an array of matches with their position in the string)