2017-04-11 2 views
-1

タイトルに記載されているヘルプを探しています - 大文字の文字列が文字列のどこかにあるURLのみを一致させる必要があります。式自体の中で指定する。大文字とファイル拡張子が含まれていないURLと一致する

大文字のセグメントと一致する問題はありませんでしたが、拡張子を持たないものを見つける方法を見つけることができないようです。

I.e.これはヒットしないはずです。

http://www.example.com/upload/campaigns/TOY/img/test-logo.svg 

これは

http://www.example.com/upload/campaigns/toy/testpage 

を打つしかしべきではありません。このはず

http://www.example.com/upload/campaigns/TOY/testpage 

私は現在、期間を選択し、このATMを、持っているが、私はそれがやや近いと思います私が実際に必要とするものまで。

([A-Z\-_0-9\/\:\.]*\.(?!jpg|jpeg|png|gif)) 

編集:

([A-Z\-_0-9\/\:\.]*\.(?!.*(?:svg|jpe?g|png|gif)$).*) 

私はhttp://regexr.com/でテストおよび/m可能だが、私に望ましい結果を与えるので、私は私の表現の一部またはとしてこれを含める必要があります。私は今、これを持っていますこのテストのシナリオでのみ適用できますか?プロダクションでは、式はURLの書き換えの一部で単一の文字列として使用されます。

+3

ピュアコード書き込み要求がスタックオーバーフローにオフトピックです - 我々は*特定の*プログラミングPに関連し、ここで質問を期待私たちはあなた自身で書くことを喜んで支援します!私たち[あなたが試したこと](http://stackoverflow.com/help/how-to-ask)とあなたが立ち往生しているところを教えてください。これはまた、あなたの質問によく答えるのにも役立ちます。 –

+0

2つのリンクに違いはありません。 –

+0

申し訳ありません、私はいくつかの他のものを試していたと私はその時点で有用な出発点だったと思っていなかった、幸いにも私はまだ私のクリップボードにもっと最近のものがあった。 – JMJ

答えて

1

あなたは、本番環境で

([\w/:.-]*\.(?!.*(?:svg|jpe?g|png|gif)$).*) 

を使用することができます。 /m修飾子は、複数行の文字列をテストするデモサイトでのみ必要です。

詳細

  • ( - グループ1マッチングキャプチャ:,
    • を[\ /:.-]* - zero or more more word chars (letters, digits or _ ),/,ワットand -`シンボル
    • \. - ドット
    • (?!.*(?:svg|jpe?g|png|gif)$).* - エンド(.*)までの任意の0+文字がある場合はないsvgない、jpg、文字列の末尾jpegpng又はgif
  • ) - グループ1の端
関連する問題