ホームページ  >  記事  >  バックエンド開発  >  Golang はワイルドカードを実装します

Golang はワイルドカードを実装します

WBOY
WBOYオリジナル
2023-05-27 10:30:10982ブラウズ

ワイルドカードは、多くのプログラミング言語で一般的に使用される検索パターンであり、プログラマーが一致するファイルや情報をより迅速に見つけるのに役立ちます。 golang ではワイルドカードの実装も非常に簡単なので、この記事では golang でのワイルドカードの使い方を紹介します。

1. ワイルドカードとは何ですか?

ワイルドカード文字は、ファイル名または検索文字列内の任意の文字または文字のグループを表すために使用できる特殊文字を指します。 Unix ファイル システムでは、ファイル名のパターン マッチングにワイルドカードがよく使用されます。たとえば、*.txt は .txt で終わるすべてのファイルと一致します。

2. ワイルドカードの使用

golang では、ワイルドカードの実装をサポートするために filepath.Match と呼ばれる関数が使用されます。この関数の基本形式は次のとおりです。

func Match(pattern, name string) (matched bool, err error)

このうち、pattern パラメータはワイルドカード パターンを指定し、name パラメータはは必須です 一致する文字列。一致が成功した場合、関数は true を返し、それ以外の場合は false を返します。 pattern パラメーターにワイルドカードが指定されていない場合、関数はパターン文字列と名前文字列が等しいかどうかを直接比較します。

filepath.Match 関数でサポートされるワイルドカード文字には、次のものがあります。

  1. *: 空の文字列を含む任意の文字を表します。
  2. ?: 任意の 1 文字を表します。
  3. [...]: 文字のセットを表します。その文字は範囲を表すために - で表すことができます。たとえば、[a-z] はすべて小文字を意味します。角括弧内の最初の文字が ! の場合、それはこのグループに含まれない文字を意味します。たとえば、[!a-z] は、a と z の間にないすべての文字を表します。
  4. : * 文字自体と一致する * などのワイルドカード文字をエスケープするために使用されます。

ワイルドカードの使用例を次に示します。

package main

import (

"fmt"
"path/filepath"

)

func main( ) {

fileNames := []string{"file1.txt", "file2.mp3", "image.jpg", "song.mp3"}
for _, fileName := range fileNames {
    matched, err := filepath.Match("*.mp3", fileName)
    if err != nil {
        fmt.Println("Error matching pattern:", err)
        return
    }
    if matched {
        fmt.Println("Matched:", fileName)
    }
}

}

上記の例では、4 つのファイル名を含むスライスを定義し、filepath.Match 関数を使用して「.mp3」で終わるファイルを検索します。実行結果は次のとおりです。

Matched: file2.mp3
Matched: Song.mp3

ご覧のとおり、出力結果にはワイルドカード パターンに一致するファイル名が含まれています。

3. 概要

golang でワイルドカードを実装するのは非常に簡単で、filepath.Match 関数を呼び出してワイルドカード パターンを指定するだけです。この記事を読むことで、golang におけるワイルドカードの基本的な知識と使い方を習得できたので、プログラミング作業に役立てていただければ幸いです。

以上がGolang はワイルドカードを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。