- ベストアンサー
Perl正規表現でURLの末尾が/かどうか調べる
yambejpの回答
- yambejp
- ベストアンサー率51% (3827/7415)
Perl互換ってPCREという意味でしょうか? 仕様がいまいちわからないですがとりあえず例示から類推すれば <? $urls=Array( "http://example.com/" ,"http://example.com" ,"http://example.com/foo.html" ); $pattern="/^http:\/\/[^\/]+$/"; $matchs=preg_grep($pattern,$urls); print_r($matchs); ?>
関連するQ&A
- 正規表現 .+? について
正規表現(egrepコマンド)の .+? とはどのようなパターンを意味するのでしょうか。 例1のケース(.+? の部分)が何故マッチするのかがわかりません。 また、例1, 2のケースは共にマッチしますが、 .+? と .*? の違いは何になるのでしょうか。 例1. echo "tmp/foo.txt" | egrep "tmp.+?/.+?foo[^/]*$" 例2. echo "tmp/foo.txt" | egrep "tmp.*?/.*?foo[^/]*$"
- ベストアンサー
- その他(プログラミング・開発)
- 正規表現について
下記期待する結果通りになる正規表現を考えておりますが、 うまくいきません。教えて下さい。 期待する結果 hoge(fuga sumomo) マッチする hoge(foo(sumomo)) アンマッチする sumomoが()で囲われている hoge(bar()sumomo) マッチする 作成した正規表現 hoge\([^(]*sumomo[^)]*\) 実際の結果 hoge(fuga sumomo) マッチ hoge(foo(sumomo)) アンマッチ hoge(bar()sumomo) アンマッチ ←予想と違う
- 締切済み
- その他(プログラミング・開発)
- ServerNamedで正規表現は使えますか?
ServerName www.example.com Redirect permanent / http://example.com/ としてwww.example.comでのアクセスをリダイレクトして今はしのいでいます。 これを ServerName (.*)\.example.com とか正規表現のつもりでやって「どんなマルチドメイン」でアクセスしてきてもhttp://example.com/ に集約しようと思ったのですができません。 どんなマルチドメイン(hoge.example.comとかpoge.example.comとか)でもexample.comのドメインであればhttp://example.com/に集約させたいです。 お分かりになる方いらっしゃいますでしょうか? vine linux 3.2 apache 1.3
- ベストアンサー
- Linux系OS
- 正規表現について
codeigniterを利用しており以下の事をしたいのですが実現できません。 以下URLでアクセスした場合にTop.phpというコントローラで第一引数と第二引数を受け取りたい。 http://example.com/ユニークID/ http://example.com/ユニークID/profile 現在はhttp://example.com/にアクセスするとTop.phpというコントローラのindexアクションが起動するようにしています。 今の所routes.phpに以下を記載した事で(http://example.com/ユニークID/)にアクセスした際にTop.phpが起動して、第一引数としてユニークIDを渡せています。 $route['^((?!hoge).)*$'] = "top/$0"; // さらに(http://example.com/ユニークID/profile)でアクセスした時に第二引数として 「profile」という文字を取得したいのですが正規表現がうまく作れません。 どうかご教授いただけないでしょうか。 よろしくお願いします。
- 締切済み
- PHP
- Apacheの設定で、拡張子なしのURLをウェブブラウザに打ち込んでもアクセス可能な設定は?
表題の通りなのですが、 Apacheの設定で、拡張子なしのURLをウェブブラウザに打ち込んでもアクセス可能な設定を、どのように書くか忘れてしまいました。 具体的には、 「http://www.example.com/foo.php」 が本来のURLだとして、 ウェブブラウザで 「http://www.example.com/foo」 とアドレス欄に入力してアクセスしても、 「http://www.example.com/foo.php」にアクセスしたのと同様になる設定が知りたいです。 (注:mod_rewriteではない方法で) 以前知っていたのですが、忘れてしまいました。 確か、1行で書けたような気が・・・。 ご存じの方がいらっしゃいましたら、お教えいただければ幸いです。
- ベストアンサー
- その他([技術者向] コンピューター)
- URLの正規化について(MT利用)
はじめまして。 URLの正規化について、悩んでおります。 わかる方がいらっしゃれば、ご指導願います。 【環境】 ドメインは、さくらで取得。 レンタルサーバーは、さくらのスタンダード。 CMSを使っており、MovableType4.25。 FTPにて管理。 取得したドメインのサブドメインを使って、ブログを制作。 【仮定】 取得ドメイン:example.com サブドメイン:〇〇〇 【悩み・現状】 制作して半年ぐらいになり、それなりに集客も出来るようになってきたのですが、最近気付いたことがあります。 それは、重複のURLが非常に多いということ・・・。 異なるURLだけど、同じ内容のものが4つも存在している現状です。 http://〇〇〇.example.com/ http://example.com/〇〇〇/ http://www.example.com/〇〇〇/ http://example.sakura.ne.jp/〇〇〇/ 上記4つのURLが同じ内容になっています・・・。 もしかしたら、見つけられていないだけで、他にもあるかも。 インターネットを色々調べていると、わかったこともあります。 <link rel="canonical" href="http://〇〇〇.example.com/">をhead内に入れる。 ⇒しかし、これは全ページに入れる必要があるかどうかが不明。 http://〇〇〇.example.com/△△△/というページを作成した時、このページにも<link rel="canonical" href="http://〇〇〇.example.com/△△△/">を入れなければならないとなると、とんでもない手間になるのではないか。 htaccessでリダイレクト? 仕組みはわかるのですが、どこにどのように入れればいいのかが不明。 【理想・質問】 http://〇〇〇.example.com/ の1つのみにしたい。 それが可能かどうか。 可能であれば、そのやり方。 不可能であれば、SEO上、最も有効な手段は何か。 また、この4つも重複URLがあるのって異常ですよね? 長文になりましたが、何卒、宜しくお願いします。 ※FTPのフォルダを見ると、 /home/example/www/ ↑この階層の下に、 mt/・・・ △△△/・・・ .htaccess index.html というフォルダを置いています。 置き方がまずいのでしょうか・・・。
- 締切済み
- その他([技術者向] コンピューター)
お礼
ありがとうございます。 皆さんのお陰で解決しました。
補足
preg_grep関数のままだと動作しますが、 このパターンをpreg_match_allなどにすると使えません。