Basic string globs in golang
Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis.yml Added travis file May 25, 2014
LICENSE Added license May 25, 2014
README.md Added travis badge May 25, 2014
glob.go Save an extra call to strings.HasPrefix Jan 28, 2017
glob_test.go Fixed matching repeated prefix Jan 26, 2017

README.md

String globbing in golang Build Status

go-glob is a single-function library implementing basic string glob support.

Globs are an extremely user-friendly way of supporting string matching without requiring knowledge of regular expressions or Go's particular regex engine. Most people understand that if you put a * character somewhere in a string, it is treated as a wildcard. Surprisingly, this functionality isn't found in Go's standard library, except for path.Match, which is intended to be used while comparing paths (not arbitrary strings), and contains specialized logic for this use case. A better solution might be a POSIX basic (non-ERE) regular expression engine for Go, which doesn't exist currently.

Example

package main

import "github.com/ryanuber/go-glob"

func main() {
    glob.Glob("*World!", "Hello, World!") // true
    glob.Glob("Hello,*", "Hello, World!") // true
    glob.Glob("*ello,*", "Hello, World!") // true
    glob.Glob("World!", "Hello, World!")  // false
    glob.Glob("/home/*", "/home/ryanuber/.bashrc") // true
}