特殊文字の有無にかかわらず特定の文字列に一致する正規表現はありますか? いわば、特殊文字を区別しない。
likecéra
は に一致cera
し、その逆も同様です。
何か案は?
編集:特定の文字列を特殊文字/アクセント文字の有無にかかわらず一致させたい。文字列/文字だけではありません。
テスト例:
$clientName = 'céra';
$this->search = 'cera';
$compareClientName = strtolower(iconv('utf-8', 'ascii//TRANSLIT', $clientName));
$this->search = strtolower($this->search);
if (strpos($compareClientName, $this->search) !== false)
{
$clientName = preg_replace('/(.*?)('.$this->search.')(.*?)/iu', '$1<span class="highlight">$2</span>$3', $clientName);
}
出力:<span class="highlight">céra</span>
ご覧のとおり、特定の検索文字列を強調表示したいと思います。ただし、一致した文字列の元の (アクセント付きの) 文字を引き続き表示したいと考えています。
これをマイケル・シヴォロボフの答えと何らかの形で組み合わせる必要があると思います。
preg_match()
別のとで作業する必要があると思いますよpreg_replace()
ね?