ホームページ >バックエンド開発 >PHPチュートリアル >URLには一致するが画像には一致しない正規表現はありますか?

URLには一致するが画像には一致しない正規表現はありますか?

WBOY
WBOYオリジナル
2016-06-23 14:04:431087ブラウズ

たとえば、http://www.abc.com/ と http://www.abc.com/images/index.php は両方とも一致しますが、
http://www.abc.com/images/logo.gif一致しません。
私が書いた表現は http://www.abc.com/images/logo と一致します。 この段落

(http\://)?([a-z0-9_-]+\.)+(com|net|cn|org){1}(\/[a-z0-9_-]+)*\.?(?!jpg|jpeg|gif|png|bmp)


ディスカッションへの返信 (解決策)

通常、URL の後に他の無関係な文字があります。この文字を使用することをお勧めします
例:
"http://www.abc.com/images/logo.gif"
... 先頭に (?!:jpg|jpeg|gif|png|bmp) (?:")

今テスト環境がなかったので適当に書いてしまいました。何か間違っているのかと思ったので環境を見つけて書き直しました

$s='http: //www.abc.com/image/index.php"http://www.abc.com/images/logo.gif"';
preg_match_all('#/[^/]*(?<=.. ..(? var_export($m);

大雑把に言うと、自分で理解して、それを修正して使用できます。
ここで.... ドットと3文字の拡張子に一致します、ドット拡張子はありません または3文字でない場合は自分で調べてください

先ほどテスト環境がなかったので、あると思って適当に書きました。何か間違っていたので、環境を見つけて書き直しました

$s='http://www.abc.com/image/index.php"http://www.abc.com/images/logo.gif "';
preg_match_all('#/[^/]*(?<=....(? var_exp ...

そうですね、HTML 画像はすべてタグ付けされていますが、幸いなことに、これにもラベルが付けられています。例を示します。

[img=88,31]http://www.discuz.net/images/logo.gif[/img]

は、上記の 2 つの状況を除くすべての URL アドレスに一致します。ありがとうございます!
うわー、上のコードの最初の行は実際には bbcode からのものですが、2 行目に =88 がありません。フォーラムはそれを HTML に変換しました

実際、上記のように、ハイパーリンクのアドレスと一致させたいのですが、href を追加すると、一致します

(?i)(?:https?|ftp)://[- a-zd.]+/?(?!/)([-a-zd+&@# %=~_|!:,.;]+/)*(?#画像のURLを削除します)(? ![-a-zd+&@#%=~_!,.;].*?.(? :jpg|jpeg|gif|png|bmp))[-a-zd+&@#%=~_ !,.;]*(?:?[a-zd+&@#/%=~_|! :,.;]*)?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。