Categorygithub.com/AspieSoft/go-regex/v4
modulepackage
4.2.0
Repository: https://github.com/aspiesoft/go-regex.git
Documentation: pkg.go.dev

# README

Go Regex

donation link

A High Performance PCRE Regex Package That Uses A Cache.

Simplifies the the go-pcre regex package. After calling a regex, the compiled output gets cached to improve performance.

This package uses the go-pcre package for better performance.

Installation


  sudo apt-get install libpcre3-dev

  go get github.com/AspieSoft/go-regex/v4

Usage


import (
  "github.com/AspieSoft/go-regex/v4"
)

// pre compile a regex into the cache
// this method also returns the compiled pcre.Regexp struct
regex.Compile(`re`)

// compile a regex and safely escape user input
regex.Compile(`re %1`, `this will be escaped .*`); // output: this will be escaped \.\*
regex.Compile(`re %1`, `hello \n world`); // output: hello \\n world (note: the \ was escaped, and the n is literal)

// use %n to reference a param
// use %{n} for param indexes with more than 1 digit
regex.Compile(`re %1 and %2 ... %{12}`, `param 1`, `param 2` ..., `param 12`);

// manually escape a string
regex.Escape(`(.*)? \$ \\$ \\\$ regex hack failed`)

// run a replace function (most advanced feature)
regex.Compile(`(?flags)re(capture group)`).RepFunc(myByteArray, func(data func(int) []byte) []byte {
  data(0) // get the string
  data(1) // get the first capture group

  return []byte("")

  // if the last option is true, returning nil will stop the loop early
  return nil
}, true /* optional: if true, will not process a return output */)

// run a simple light replace function
regex.Compile(`re`).RepStr(myByteArray, myReplacementByteArray)

// return a bool if a regex matches a byte array
regex.Compile(`re`).Match(myByteArray)

// split a byte array in a similar way to JavaScript
regex.Compile(`re|(keep this and split like in JavaScript)`).Split(myByteArray)

// a regex string is modified before compiling, to add a few other features
`use \' in place of ` + "`" + ` to make things easier`
`(?#This is a comment in regex)`

// an alias of pcre.Regexp
regex.PCRE

// direct access to compiled pcre.Regexp
regex.Compile("re").RE


// another helpful function
// this method makes it easier to return results to a regex function
regex.JoinBytes("string", []byte("byte array"), 10, 'c', data(2))

// the above method can be used in place of
append(append(append(append([]byte("string"), []byte("byte array")...), []byte(strconv.Itoa(10))...), 'c'), data(2)...)

Optional

For a more verbose version of this module, with longer function names.


  import (
    "github.com/AspieSoft/go-regex/v4/verbose"
  )

# Packages

No description provided by the author

# Functions

AutoInstallLinuxDependencies will automatically detect and install dependencies if missing from debian or arch linux debian: libpcre3-dev arch: pcre-dev.
An alias for Compile.
Compile compiles a regular expression and store it in the cache.
Escape will escape regex special chars.
No description provided by the author
No description provided by the author
JoinBytes is an easy way to join multiple values into a single []byte accepts: []byte, byte, int32, string, [][]byte, int, int64, float64, float32.

# Structs

No description provided by the author

# Type aliases

No description provided by the author