質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

4655閲覧

phpのPCRE正規表現パターン接頭詞について

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2015/03/11 03:09

編集2015/03/11 04:50

どこかのソースで、PCRE正規表現(phpで言うpreg_match()等)のパターン接頭詞に
「[:?0-9a-z]+」や「[:@0-9a-z]+」といった接頭詞(:? :@)をたまに見ることがあります。
これらをGoogleで調べてもリソースが出てきません。
これらはどういう意味を持つのでしょうか。宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「:」「?」「@」の文字そのものではないでしょうか・・・
文字クラスの中で使えるメタ文字は以下の3つだけのようですので
http://php.net/manual/ja/regexp.reference.meta.php

似たメタ文字に肯定先読みとか否定戻り読みとかありますが、文字クラスの中では使えないと思います。

追記:
preg_match関数はPOSIX正規表現ではありませんね。

投稿2015/03/11 03:45

編集2015/03/11 03:54
naga3

総合スコア1293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/03/11 04:52

ご指摘有難う御座います、ただ今質問を修正いたしました。 6年以上前のphp4時代では、上記接頭詞を入れてマルチバイト文字を無視する意味合いで入れられていた気がします。(マルチバイト文字検索を省略して、検索速度を早める方法?)
guest

0

ベストアンサー

自己解決しました。
(というより、友人がリソースを見つけてきてくれました。感謝!)

問題提起していた内容は、パターン接頭詞ではなく文字のグループ化でした。
検索結果をキャッシュしない為、後方参照が出来ないそうです。
然し上記のようにキャッシュしない分検索速度が向上する、と解釈できるようです。

■参考URL■
http://www.geocities.jp/maakun_gemini_ab/contents/pc/regexp.html#S_NONCAPTURE

(?:) (小括弧・クエスチョンマーク・コロン)」 文字のグループ化 (Non-Capturing Group)

  • 小括弧の中の文字列をグループ化。部分表現として、1文字毎ではなく文字列でマッチ。

e.g. (?:ABC)…文字列ABCにマッチ。

  • 但し、マッチした文字列をキャッシュしないので、後から参照出来ない。

e.g. /A(?:BC)/.exec("ABCDEFG"); RegExp.$1 ? alert("True") : alert("False"); …「False」と表示。(JavaScriptの場合)

投稿2015/03/11 05:32

編集2015/03/11 05:38
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naga3

2015/03/11 06:02

キャプチャしないサブパターンですね。 ご質問のような文字クラス([])の中では使えないのでご注意を。
退会済みユーザー

退会済みユーザー

2015/03/11 06:16

誤解を招いて申し訳ございませんでした。 イイ勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問