1
私の文字列で特定のtldドメインを削除したいのですが、いくつか問題があります。php preg_replaceでトップレベルドメインを削除する
$MyString = 'Amazon.com: pada port .com3 Dog Name Tags.com googl.com™ any.com™ on mys.co.uk® end.Commando is .commitment.com & communism.ca';
echo preg_replace('~\.(com|info|us|org|top|xyz|co\.in|co\.uk|ca|mobi)(?:[^a-z\d]|$)~i', '', $MyString);`
コード出力が
Amazon pada port .com3 Dog Name Tagsgoogltrade; any on mys end.Commando is .commitment& communism
私が欲しいの出力が
Amazon: pada port .com3 Dog Name Tags googl® any™ on mys® end.Commando is .commitment & communism
'(:[^ AZ \ D] | $?)'余分な文字にマッチしますし、あなたがしているので、それらを削除それらを置換文字列に入れないでください。 –
もし私が削除したら(?:[^ a-z \ d] | $)= .com3も削除されます – DnKurnia1
.com3は有効なTLDではありません。アイカンは最近、キッチンシンクを含め、ほとんどのものをTLDとして認めています。基本的に永遠に変化する可能性のあるリストをフィルタリングする単純な正規表現を使用することはできません –