テキスト ファイル内の特定の文字列をリンクに置き換えようとしています。いくつかのエンティティは複数の単語で構成されています。つまり、間にスペースが入った文字列です。私は基本的に、句読点を考慮し、大文字と小文字を区別しない正規表現を探しています。私の「解決策」はぐるぐる回っているようで、私の正規表現の知識はこれには十分ではありません:(
$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 );
ここまで私を手に入れました:
アンソニー・アンダーソン。(1970 年 8 月 15 日生まれ) は、俳優、コメディアン、作家です。彼は主演しています...アンソニー・アンダーソンだけでなく、フォックスのシットコム.[[トニー・アンダーソン]][[トニー・アンダーソン]] [[トニー・アンダーソン]]アンソニー・アンダーソン。. アンソニー・アンダーソン。Anthony Andersoneon は、Santhony Anderson とも一致すべきではありません
しかし、私は後です:
[[トニー・アンダーソン]]。(1970 年 8 月 15 日生まれ) は、俳優、コメディアン、作家です。彼は [[Tony Anderson]] だけでなく、フォックスのシットコムにも出演しています。[[トニー・アンダーソン]]。[[トニー・アンダーソン]]? ![[トニー・アンダーソン]]. [[トニー・アンダーソン]]。. [[トニー・アンダーソン]]。Anthony Andersoneon は、Santhony Anderson とも一致すべきではありません
私は何が欠けていますか?