0

末尾のスラッシュがないページ上のすべての URL を検索する preg_match_all パターンを探しています。

例:私が持っている場合

a href="/testing/abc/">end with slash

a href="/testing/test/mnl">no ending slash

結果は#2になります。解決策は、末尾のスラッシュなしで URL の検索パターンに投稿されます

提供されたパターンを変更して、「画像」または「.pdf」を含む URL を除外しようとしましたが、まだ成功していません。

ありがとう。

4

2 に答える 2

2

これはあなたのニーズに合うはずです(demo):

href="(?:(?<!images).(?!(?:[.]pdf|/)"))*?"
  • (?:)= 非捕獲グループ
  • (?<!images).= の前にない任意の文字images
  • .(?!(?:[.]pdf|/)").pdf"= 後にも次も続かない任意の文字/"
  • *?=できるだけ短く一致
于 2013-03-19T17:03:26.997 に答える
1

提供された回答を他の質問から変更することにより、.pdf を含むリンクを除外する方法を見つけました。ただし、画像の例と一致しない理由をまだ調べています。

href=(['"])[^\s]+(?<![\/]|.pdf)\1

動作テストへのリンクhttp://www.rubular.com/r/jmBVstpGZD

于 2013-03-19T17:01:30.907 に答える