この正規表現に頭を悩ませるのに苦労しています。私がやろうとしていることは次のとおりです。
- #で始まる単語の出現箇所に一致します。したがって、たとえば、コードが次のタグ#jon、#james、#jillを検出した場合、テキストを非表示にする必要があります。
- ただし、コードが次のタグの出現を検出した場合:#ADMINISTRATOR、テキストを表示する必要があります
- さらに、コードで#のタグが付いた単語が見つからない場合は、テキストも表示されるはずです。
基本的に、ADMINISTRATOR以外のユーザー名でハッシュタグ付けされたコメントを非表示にします。
これまでのところ、私は次のコードを持っています:
if (mb_ereg_match(".*(#[^ADMINISTRATOR]){1,}.*", $comment))
{
$hideComment = true;
}else
{
$hideComment = false;
}
上記のコードは、検索対象のテキストに次のいずれかが含まれている場合を除いて、ほとんどの部分で機能します。
#A, #AD, #ADM, #ADMI, #ADMIN, etc.
その場合、コードはコメントを非表示にしません。これは私が望んでいることではありません。コメントを表示するには、「#ADMINISTRATOR」と完全に一致するだけです。さらに、タグを含まないコメントも表示する必要があります。
私が間違っていることについて何か考えはありますか?