wildcard

package module
v0.0.0-...-71dac92 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2022 License: MIT Imports: 0 Imported by: 1

README

wildcard

A simple golang customizable wildcard matcher. Golang has pretty well built regex functionalities, but it does not have basic wildcard matcher that works as nicely. Therefore this package serves the need to check whether a string matches a pattern in the rule of wildcard.

To keep simplicity, the matcher supports only two rules:

  • "?" for a single char.
  • "*" for any number (including zero) of chars.

Charset like "[A-Za-z]" or SQL style wild cards like % are not supported.

usage

To import the package, go get the module.

go get -u github.com/vodkaslime/wildcard@main

To match pattern, use a matcher.

package main

import (
	"github.com/vodkaslime/wildcard"
)

func main() {
	matcher := wildcard.NewMatcher()
	p := "a?c"
	s := "abc"
	m, _ := matcher.Match(p, s)
	println(m)
}

The default wildcard chars are "?" for single chars and "*" for multiple chars. To customize this rule, tune the S field and M field accordingly.

For example to use "." as single char wildcard symbol:

package main

import (
	"github.com/vodkaslime/wildcard"
)

func main() {
	matcher := wildcard.NewMatcher()
	matcher.S = '.'
	p := "a.c"
	s := "abc"
	m, _ := matcher.Match(p, s)
	println(m)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Matcher

type Matcher struct {
	S byte
	M byte
}

func NewMatcher

func NewMatcher() *Matcher

func (*Matcher) Match

func (m *Matcher) Match(pattern string, s string) (bool, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL