Я пытаюсь заменить определенные вхождения строк в текстовом файле ссылками. Некоторые объекты состоят более чем из одного слова, т. е. представляют собой строки с пробелами между ними. По сути, я ищу регулярное выражение, которое учитывает пунктуацию и нечувствительно к регистру. Мое «решение», кажется, просто ходит по кругу, и моих знаний о регулярных выражениях недостаточно для этого :(
$pattern = '/[ ._*&^%$#!?!]Anthony Anderson[ ._*&^%$#!?!]/i';
$replacement = '[[Tony Anderson]]';
$subject = 'Anthony anderson. (born August 15, 1970) is an actor, comedian, and writer. He has starred ... the ANTHony Anderson, as well as in Fox sitcom. anthony Anderson. Anthony aNderson? !Anthony AnderSon. Anthony Anderson. . anthony
anderson. Anthony Andersoneon should not match neither should Santhony Anderson ';
echo preg_replace($pattern, $replacement, $subject, -1 );
Получил меня так далеко:
Энтони Андерсон. (родился 15 августа 1970 г.) - актер, комик и писатель. Он снялся ... у ЭНТОНИ Андерсона, а также в ситкоме Fox. [[Тони Андерсон]][[Тони Андерсон]] [[Тони Андерсон]] Энтони Андерсон. . Энтони Андерсон. Энтони Андерсон не должен соответствовать, как и Сантони Андерсон.
Но я после:
[[Тони Андерсон]]. (родился 15 августа 1970 г.) - актер, комик и писатель. Он снялся ... в [[Тони Андерсон]], а также в ситкоме Fox. [[Тони Андерсон]]. [[Тони Андерсон]]? ![[Тони Андерсон]]. [[Тони Андерсон]]. . [[Тони Андерсон]]. Энтони Андерсон не должен соответствовать, как и Сантони Андерсон.
Что мне не хватает?