質問箱/2530

カテゴリ
サマリ「一覧・更新一覧に含めないページ名」で複数の正規表現を使う可能性について
バージョン1.4.4_php5
投稿者バイズ?
状態完了
投稿日2005-01-11 (火) 16:16:32

質問

一覧・更新一覧に含めないページ名の正規表現パターン $non_list では正規表現で指定しているのですが、次のように

/////////////////////////////////////////////////
// 一覧・更新一覧に含めないページ名(正規表現で)
$non_list   = '^(\:.+|コメント\/.+|日記\/.+|MenuBar|FrontPage|template|RecentDeleted|.+\/template|.+\/SubMenu)$';

正規表現を長く書いてしまってと自分でも正確にマッチするか分からないときがあるのですが、これらの正規表現を配列に分けて、この正規表現のパターンを含めた配列で一覧・更新一覧に含めないページ名をマッチさせる事が可能でしょうか。

例えば:

$non_list_array = array(
	'^(\:|コメント\/|日記\/)',
	'(MenuBar|FrontPage|template|RecentDeleted)',
	'\/SubMenu$',
);

といった感じで、

  • ページ名の先頭にマッチするパターン、
  • ページ名の文字列にマッチするパターンと、
  • ページ名の終わりにマッチするパターン

に分ける事で正規表現の編集がかなりラクになると思いますが、どなたか対策がありましたら教えて頂けるのでしょうか。

よろしくお願いします。

回答

  • array定義後に non_list を join で作ったらだめですか? (^^; -- teanan 2005-01-11 (火) 16:28:59
  • だめっぽい >_< PHP のハンドブックを読んだら join() は配列の内容を連結する文字列を指定する必要があるので、正規表現を連結文字列で作ったらマッチしないような気がします*1。でもとりあえずやってみます!有難うございました (^^) -- バイズ? 2005-01-11 (火) 16:54:32
  • &worried; ? -- 2005-01-11 (火) 20:05:14
    $non_list_array = array(
        '^(\:|コメント\/|日記\/)',
        '(MenuBar|template|RecentDeleted)',
        '\/SubMenu$',
    );
    $non_list = implode('|',$non_list_array);
    • 私が言いたかった内容は、上記のとおりです :) -- teanan 2005-01-12 (水) 08:47:13
  • で、できたできた!! (^^) teanan さん有難うございます。一つのパイプで連結するだけでこの問題を解消する*2なんてスゴイです!正規表現の知識が足りないなと痛感しました。調子が良いので、他に正規表現パターンが必要なハックも変更しました。今正規表現の編集/追加はかなりラクです (^^) -- バイズ? 2005-01-12 (水) 13:49:31
    • いえ、上記のコードは私が書いたものではないです (^^;*3 -- teanan 2005-01-12 (水) 16:04:52
  • 匿名のお方、teanan さんに感謝です (^^) -- バイズ? 2005-01-13 (木) 10:52:06
  • 類似: 質問箱/3218質問箱/3218 -- 2005-12-30 (金) 17:00:37

*1 知識が足りないので曖昧な言い方になりますが…
*2 なんでこれで動くの?と思ったがまた自分で勉強してみます
*3 感謝は匿名の方に :)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-27 (土) 23:56:33
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.260 sec.

OSDN