Я плохо разбираюсь в Regex и пытаюсь уже несколько часов, поэтому надеюсь, что вы мне поможете. У меня есть этот текст:
✝his is *✝he* *in✝erne✝*
Мне нужно захватить (используя PREG_OFFSET_CAPTURE) только ✝
в слове, окруженном *
, поэтому мне нужно захватить только последние три ✝
в этом пример. Выходной массив должен выглядеть примерно так:
[0] => Array
(
[0] => ✝
[1] => 17
)
[1] => Array
(
[0] => ✝
[1] => 32
)
[2] => Array
(
[0] => ✝
[1] => 44
)
Я пробовал использовать (✝)
, но, конечно, это выберет все экземпляры, включая слова без звездочек. Затем я попробовал \*[^ ]*(✝)[^ ]*\*
, но это дает мне только последний экземпляр одним словом. Я пробовал много других вариантов, но все были неправильными.
Чтобы уточнить: звездочка может стоять в любом месте строки, но всегда в начале и в конце слова. Открывающая звездочка всегда предшествует пробелу, за исключением начала строки, а закрывающая звездочка всегда заканчивается пробелом, за исключением конца строки. Надо добавить, что знаки препинания могут находиться внутри этих звездочек . ✝
- это именно (и только) то, что мне нужно для захвата, и может быть в любой позиции в слове.