match

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2021 License: MIT Imports: 1 Imported by: 118

README

Match

GoDoc

Match is a very simple pattern matcher where '*' matches on any number characters and '?' matches on any one character.

Installing

go get -u github.com/tidwall/match

Example

match.Match("hello", "*llo") 
match.Match("jello", "?ello") 
match.Match("hello", "h*o") 

Contact

Josh Baker @tidwall

License

Redcon source code is available under the MIT License.

Documentation

Overview

Package match provides a simple pattern matcher with unicode support.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Allowable

func Allowable(pattern string) (min, max string)

Allowable parses the pattern and determines the minimum and maximum allowable values that the pattern can represent. When the max cannot be determined, 'true' will be returned for infinite.

func IsPattern added in v1.0.1

func IsPattern(str string) bool

IsPattern returns true if the string is a pattern.

func Match

func Match(str, pattern string) bool

Match returns true if str matches pattern. This is a very simple wildcard match where '*' matches on any number characters and '?' matches on any one character.

pattern:

{ term }

term:

'*'         matches any sequence of non-Separator characters
'?'         matches any single non-Separator character
c           matches character c (c != '*', '?', '\\')
'\\' c      matches character c

func MatchLimit added in v1.1.1

func MatchLimit(str, pattern string, maxcomp int) (matched, stopped bool)

MatchLimit is the same as Match but will limit the complexity of the match operation. This is to avoid long running matches, specifically to avoid ReDos attacks from arbritary inputs.

How it works: The underlying match routine is recursive and may call itself when it encounters a sandwiched wildcard pattern, such as: `user:*:name`. Everytime it calls itself a counter is incremented. The operation is stopped when counter > maxcomp*len(str).

Types

This section is empty.

Jump to

Keyboard shortcuts

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