• ベストアンサー

ワイルドカードと正規表現って何が違うのでしょうか?

ワイルドカードは簡単な文字検索方法で 正規表現は難しいパターンも調べられる文字検索方法ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4856/10271)
回答No.4

「ワイルドカードと正規表現」じゃなくて、「ファイル名のマッチと正規表現」の事ですかね。 ワイルドカードはトランプ用語で、「他のどんなカードの代わりにも使えるカード(多くの場合ジョーカー)」のことです。そこから転じて、「他のどんな文字にもマッチする特殊文字」の意味で使われます。 ファイル名のマッチ: コマンドラインや、プログラミング言語の一部の関数でのファイル名の指定に使う  ? どんな1文字にもマッチ(ワイルドカード)  * 0文字以上のどんな文字列にもマッチ(文字列のワイルドカード)  Windowsで使えるのは上記2つですが、Unix/Linuxのシェルだともう少しあります。 正規表現: プログラミング言語から様々な文字列パターンを選択するときに使うパターン  . どんな1文字にもマッチ(ワイルドカード)  * 直前の表現の0回以上の繰り返し(繰り返し指定子の一つ)  他に多数あり。 それぞれ使い場所が違います。

bqptghkccnok
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.3

見た目は似てますが全く別物です。 本来、正規表現は正規言語を表現するためものです(形式言語とかオートマトンとかを勉強してください)。 ワイルドカードは何にでもマッチする特殊文字、ただそれだけ。

bqptghkccnok
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

>ワイルドカードと正規表現って何が違うのでしょうか? 自分で作成して業務で検索する仕事につけば、わかることがらです。 >正規表現は難しいパターンも調べられる文字 ”難しい”と言う表現は合わない。”適切な検索結果をもたらすための手段”となる。

bqptghkccnok
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

正規表現に於ける一つの表記方の一つとしてのワイルドカード

bqptghkccnok
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現の表現パターンについて教えて下さい。

    こんばんわ、正規表現を使ってある文字列を検索するプログラムを勉強していたのですが、 eregi('(http://|https://)[a-z0-9./_\-]+',第二引数、第三引数) となっていたのですが、第一引数の最後の + の部分はどうゆう意味があるのでしょうか? 僕の理解では[ ]の間が検索する正規表現のパターンだと思っているのですが、、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現で「除く」

    windows用のエディタの「VIVI」というのを使っています。 grepで「2002/09/01」という文字列を含まないテキストを検索したいのですが、正規表現での検索の方法を教えていただけないでしょうか。 #どのエディタも同じではないかもしれませんが。 #自分は、正規表現のことは素人です。単に上記条件の日付のみを変更して使いたいだけ・・ (^^;

  • 正規表現で( , -, ] を表すと。

    こんばんは。お世話になります。 正規表現を使ったプログラミングをしているのですが、一般に、) や、[ や - は正規表現の記号として使われますよね。 この文字を正規表現で検索したい時には、どうすればよいのでしょうか?. 誰か分かる方は教えてください。よろしくお願いします。

  • 正規表現

    例えば下のような文字列があって、{~} を正規表現で最初の一つをマッチさせたいのですが、{~} が複数あると最初の一つだけを取り出すことができません。 あああああ{aaaaa}いいいいい{bbbbb}ううううう パターンは /{.*}/ こんな感じでやっているのですが結果は、 {aaaaa}いいいいい{bbbbb} となってしまいます。 正規表現に詳しい方教えてください。

  • 正規表現について

    正規表現について質問をさせていただきます。 VB6.0にて正規表現を使用し、入力された文字のチェックを行っていますが どうしてもうまくいきません。 チェックしたい文字は A(半角アルファベット大文字1文字)または AAA(半角アルファベット大文字3文字)または (AAA)(半角カッコつき半角アルファベット大文字3文字)で 上記3パターン以外はエラーとしたいと思っています。 パターンは下記のように作成したのですが "(^[\(][A-Z]{3}[\)])|(^[A-Z]{1,3})" A、AAA、(AAA)以外でもA(AA)やAAAA等も正常ケースとして通過してしまいます。 パターンをどのように作成すればよいか教えて下さい。 よろしくお願いします。

  • .NET正規表現で(?=...)を使えない?

    お世話になります。 以下のページ(.NET Framework 開発者ガイド>グループ化構成体) http://msdn.microsoft.com/ja-jp/library/bs2twtah(VS.80).aspx に、.NET正規表現について以下のようなパターンがあります。  (?= subexpression) ゼロ幅の正の先読みアサーションです。(略)  (?! subexpression) ゼロ幅の負の先読みアサーションです。(略)  (?<= subexpression) ゼロ幅の正の後読みアサーションです。(略)  (?<! subexpression) ゼロ幅の負の後読みアサーションです。(略) これらは、あるパターンが注目している前/後に現れる/現れないかどうかをチェックするけど、それらをキャプチャーしないというものです。 これを使いたいのですが、使えません。以下はVBScriptのプログラムで、WSCript 5.6および5.7で動作させました。(インデントを表現するために全角空白を使っています。実際に動かしてくださる方はタブ文字かなにかに変換願います) Option Explicit Dim objRegExp ' 正規表現オブジェクト Dim objMatches ' 検索結果 Dim objMatch ' 検索結果 Dim strMessage ' 表示メッセージ Set objRegExp = New RegExp objRegExp.Pattern = "(?<=「)[^」]+(?=」)" objRegExp.IgnoreCase = True objRegExp.Global = True Set objMatches = objRegExp.Execute("カッコ前「カッコ中」カッコ後") WScript.Echo objRegExp.Pattern & " は" For Each objMatch In objMatches  strMessage = " " & objMatch.FirstIndex + 1 & _   " 文字目に見つかりました。" & _   "一致した文字列は " & objMatch.Value & " です。"   WScript.Echo strMessage Next Set objMatches = Nothing Set objRegExp = Nothing ところが、  objRegExp.Pattern = "(?<=「)[^」]+(?=」)" のところで「正規表現で構文エラーになりました」となります。 これを、もっと簡単なパターン、  objRegExp.Pattern = "(?:「)[^」]+(?:」)" とすれば動くことは分かっているんですが、今の私の主眼としては「(?<=...)」および「(?=...)」を使いたいんです。 他に、Word 2007 の VBA を試しましたがダメでした。 正規表現自体は合っているようです。 というのは、以下のテストツールで動作できたからです。 http://www.ultrapico.com/Expresso.htm ということで、これらの新しい .NET 正規表現を VBScript や VBA で動かす方法はあるでしょうか。 よろしくお願いいたします。

  • 正規表現が解りません

    正規表現が難しくて困っています。 次のようなパターンはどうやって表せば良いのでしょうか? (1)"http"から始まる文字列である。 (2)"http"もしくは"a"から始まらない文字列である。【否定文】 初歩的な質問で申し訳ありませんが、どなたかご存知でしたら宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現でつまずいています

    お世話になっております。 VB2005を使っていますが、正規表現でつまずいています。 日付を表すデータとして、以下のような2つのパターンがあります。 Date: 02-apr-2010   ← : と 02の間に半角スペースがあります。 Date:13-Jan-2010 00:12:14 それぞれから年月日のデータのみを取り出すために正規表現を組んでみましたがうまくいきません。 "Date:\s*(?<date>.*)$|\s.*" $|\s.*  で意図したところは、文字列の最後 or スペースが1個と任意の文字が続く、というものです。 正しい表記方法をご指示いただければ幸いです。 よろしくお願いいたします。

  • Linuxの正規表現について

    Linuxの正規表現について教えてください。 正規表現を使うと、文字列のパターンを表す事ができる。例えば、行頭が「#」で始まる行は____、aもしくはfで始まる三文字の文字列は____となる という問題なんですけど____の部分をだれか教えてください。明日テストなんだけどわからくて… お願いします。

  • 正規表現を教えてください。

    正規表現を教えてください。 C#で正規表現を用いた文字列検索を勉強中なのですが、うまくマッチさせることができません。教えていただけないでしょうか。 検索対象の文字列は下のようになります。 キーワード;値; 文字列中に該当するキーワードが存在する場合に、その値を取得するプログラムを考えています。しかし、私の正規表現では2つ目の「;」を検出してしまい、キーワードのみを取得することが出来ずに困っています。 見当違いの表記をしているとは思うのですがどなたかお助けください。 match = Regex.Match(line, "^(.*);"); C#初心者なものです。