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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

正規表現

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

PEAR

PEAR (PHP Extension and Application Repository)はPHPで利用する事ができるライブラリです。

Q&A

解決済

2回答

12087閲覧

ワイルドカードと正規表現の違い

aaaaaaaa

総合スコア501

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

正規表現

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

PEAR

PEAR (PHP Extension and Application Repository)はPHPで利用する事ができるライブラリです。

1グッド

6クリップ

投稿2016/05/24 11:50

編集2016/05/25 02:18

お題目の通り、正規表現とワイルドカード違いを教えてください。
正規表現が、上手く説明できないので微視的になりますが曖昧な語句、例えば、0文字から1文字を意味する「?」や、abcのうちのどれかを意味する[abc]などを利用することで文字列の揺れを吸収し、検索を行って人を助けるもの、ワイルドカードが特殊な意味を持つ文字列の集まりと認識しております。
ネット上で「正規表現 ワイルドカード 違い」と調べるとなんでも世の中の正規表現やワイルドカードの説明は、間違いだらけだ、と記述しているサイトを見つけました。独習phpという書籍には、ワイルドカートを高度化したものが正規表現であると書いてあります。
ワイルドカードと正規表現の違いは、いったい何なのでしょうか。

stereo_code👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

ワイルドカード

ワイルドカードは扱う言語によって文法が異なりますが、共通するのは任意の文字を表すメタキャラクタである事です。
参考までに次の文法である事が多いですね。

  • ? … 任意の一文字 (正規表現でいうところの [\s\S])
  • * … 任意の文字の0回以上の繰り返し (正規表現でいうところの [\s\S]*)

正規表現

正規表現は「任意の文字」以外にも特別な意味を持つメタキャラクタが多数あります。
繰り返し条件も + (1回以上の繰り返し)、* (0回以上の繰り返し)、{3} (3回の繰り返し、のように指定方法が多彩です。
ワイルドカードと比較して柔軟に文字列処理できるのが正規表現の特徴です。

Re: aaaaaaaa さん

投稿2016/05/24 12:16

編集2016/05/24 12:40
think49

総合スコア18189

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

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

aaaaaaaa

2016/05/25 04:31

ご回答有難うございます。 正規表現は、ワイルドカードを高度にしたもの、というのも当たらずも遠からずって感じですね。
guest

0

「ワイルドカード」は、元々はトランプのジョーカーのように「何にでもなるもの」という意味です。
従って、語義通りだと、正規表現の.もワイルドカードになります。
ただ、プログラミングの世界だと、「シェルのファイル名展開(glob)の記法」と同じ意味で使われていることも多いようです。

シェルがファイル名を展開する際に解釈するワイルドカードは、?が任意の1文字、*が任意の0文字以上、[a-z]が文字クラスなど、正規表現と同じ部分も有り異なる部分もあります。

誤解を避けるためには「ワイルドカード」という言葉を一切使わないというのが良いかと思います。

追記:
説明が足りず、誤解を招く事もあるようなので、整理して書き直します。

#ワイルドカードとは
由来:
トランプのいくつかのゲームでのジョーカーのようにどのカードの代わりにもなる機能
(ゲームによっては、ジョーカーがそういう機能を持っていないし、ジョーカー以外がワイルドカード機能を持つこともある)

由来に沿った意味:
正規表現の.、シェルのパス名展開の* ?、SQLのLIKEの% _のように(一部例外はあるが)どの文字にもマッチする記号のこと。

よく使われいている意味:
シェルのパス名展開の* ?の意味を含んだような、パターンマッチングのための記法。
シェル以外でも、* ?の意味が共通であれば、その記法がワイルドカードと呼ばれることがある。
Bashのパス名展開だとこのほかに[ ]{ }を使った指定方法もあるし、その記法はパス名展開以外の場所たとえばcase文や、変数展開時の修飾などでも使われている。

投稿2016/05/24 12:29

編集2016/05/25 06:39
otn

総合スコア85778

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

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

think49

2016/05/24 12:36

> 語義通りだと、正規表現の.もワイルドカードになります。 . は改行にマッチしない為、「何にでもなるもの」の定義においてはワイルドカードとは呼べないと思います。
otn

2016/05/24 22:24

まあ、何事にも例外はあるものです。シェルのファイル名の場合も、`*`は先頭の`.`にマッチしませんが、一般には「任意の0文字以上」と説明されています。man bashでも > * 空文字列を含む、任意の文字列にマッチします。 となっています。
think49

2016/05/25 02:50

ワイルドカードは言語によって文法が異なるので厳密には「OS」「ソフト名」を指定して意味を成すものだと思います。 しかしながら、親記事では「語義通り」と「シェルのファイル名展開(glob)の記法」が区別されていました。 ファイル名には改行を含められませんが、「語義通り」なら改行を含める必要があるのではないでしょうか。
otn

2016/05/25 05:46

> ワイルドカードは言語によって文法が異なるので厳密には「OS」「ソフト名」を指定して意味を成すものだと思います。 そうですね。同じく正規表現もソフト名の指定が必要です。 > しかしながら、親記事では「語義通り」と「シェルのファイル名展開(glob)の記法」が区別されていました。 すいませんが、この文の意図が分かりません。 > 「語義通り」なら改行を含める必要がある 本論からすると枝葉になるので、例外には触れずに書いたというのは書いた通りです。man bashの`*`も例外(先頭のピリオド)の説明がないのは書いた通り。 なお、枝葉を書くと、Unix/Linuxだとファイル名に改行を含められ、改行は`?`にも`*`にもマッチします。
otn

2016/05/25 06:10

ああ、なんかおっしゃりたいことが分かった気がしますので、回答に追記します。
think49

2016/05/25 14:39

補足ありがとうございます。 トランプのワイルドカードはよく聞きますね。 UNO にまさにそのままの名前「Wild Card」があるのを思い出しました。
zeus

2016/06/11 18:58

既に説明されているように両方ともメタキャラクタであることは共通。 ワイルドカードはWindowsでのファイル検索の時に使えるので便利以前作ったバッチファイルを探す場合*.batで検索をすれば見つかる。 正規表現では文字だけでなく制御コードに適用されるメタキャラクタが用意されているのが強力です。 私が正規表現が使えるエディタを探して使い続ける理由としてExcelデータの整形でスーペースをタブ記号に置き換えたい特に¥tタブ記号のメタキャラが使えると便利だったり ^行頭 改行¥n を組み合わせて空白行を削除する時に ^¥nを指定してそれをヌルに置き換えることで空白行が削除できたりすることです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問