regen

package
v1.3.4-alpha0727 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2024 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	AllRunes             []rune
	AllRunesNL           []rune
	AllRunesAsString     []string
	VisibleRunes         []rune
	VisibleRunesAsString []string
)

Functions

func Generate

func Generate(pattern string) ([]string, error)

Generate 根据正则表达式生成所有匹配的字符串,返回生成的字符串切片和错误 对于一些可能匹配多次的元字符: * : 则只会生成匹配 0 次或 1 次的字符串 + : 则只会生成匹配 1 次或 2 次的字符串 {n,m} : 则会生成匹配 n 次到 m 次的字符串 {n,} : 则只会生成匹配 n 次或 n+1 次的字符串 Example: ``` regen.Generate("[a-z]+") // a-z 单个字母,aa-zz 两个字母 ```

func GenerateOne

func GenerateOne(pattern string) (string, error)

GenerateOne 根据正则表达式生成一个匹配的字符串,返回生成的字符串和错误 Example: ``` regen.GenerateOne("[a-z]") // a-z 中随机一个字母 regen.GenerateOne("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func GenerateOneStream

func GenerateOneStream(pattern string, ctxs ...context.Context) (string, error)

GenerateStream 根据正则表达式流式生成一个匹配的字符串,返回生成的字符串和错误 对于一些可能匹配多次的元字符: * : 则只会生成匹配 0 次或 1 次的字符串 + : 则只会生成匹配 1 次或 2 次的字符串 {n,m} : 则会生成匹配 n 次到 m 次的字符串 {n,} : 则只会生成匹配 n 次或 n+1 次的字符串 Example: ``` regen.GenerateOneStream("[a-z]+") // a-z 中随机一个字母 regen.GenerateOneStream("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func GenerateStream

func GenerateStream(pattern string, ctxs ...context.Context) (chan string, context.CancelFunc, error)

GenerateStream 根据正则表达式流式生成所有匹配的字符串,返回生成的字符串通道和生成取消函数和错误 对于一些可能匹配多次的元字符: * : 则只会生成匹配 0 次或 1 次的字符串 + : 则只会生成匹配 1 次或 2 次的字符串 {n,m} : 则会生成匹配 n 次到 m 次的字符串 {n,} : 则只会生成匹配 n 次或 n+1 次的字符串 Example: ``` ch, cancel, err = regen.GenerateStream("[a-z]+") for s = range ch { println(s) } ```

func GenerateVisibleOne added in v1.2.8

func GenerateVisibleOne(pattern string) (string, error)

GenerateVisibleOne 根据正则表达式生成一个匹配的字符串(都是可见字符),返回生成的字符串和错误 Example: ``` regen.GenerateVisibleOne("[a-z]") // a-z 中随机一个字母 regen.GenerateVisibleOne("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func GenerateVisibleOneStream

func GenerateVisibleOneStream(pattern string, ctxs ...context.Context) (string, error)

GenerateVisibleOneStream 根据正则表达式流式生成一个匹配的字符串(都是可见字符),返回生成的字符串和错误 对于一些可能匹配多次的元字符: * : 则只会生成匹配 0 次或 1 次的字符串 + : 则只会生成匹配 1 次或 2 次的字符串 {n,m} : 则会生成匹配 n 次到 m 次的字符串 {n,} : 则只会生成匹配 n 次或 n+1 次的字符串 Example: ``` regen.GenerateVisibleOneStream("[a-z]") // a-z 中随机一个字母 regen.GenerateVisibleOneStream("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func MustGenerate

func MustGenerate(pattern string) []string

MustGenerate 根据正则表达式生成所有匹配的字符串,如果生成失败则会崩溃,返回生成的字符串切片 对于一些可能匹配多次的元字符: * : 则只会生成匹配 0 次或 1 次的字符串 + : 则只会生成匹配 1 次或 2 次的字符串 {n,m} : 则会生成匹配 n 次到 m 次的字符串 {n,} : 则只会生成匹配 n 次或 n+1 次的字符串 Example: ``` regen.MustGenerate("[a-z]+") // a-z 单个字母,aa-zz 两个字母 ```

func MustGenerateOne added in v1.2.9

func MustGenerateOne(pattern string) string

MustGenerateOne 根据正则表达式生成一个匹配的字符串,如果生成失败则会崩溃,返回生成的字符串 Example: ``` regen.MustGenerateOne("[a-z]") // a-z 中随机一个字母 regen.MustGenerateOne("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func MustGenerateVisibleOne added in v1.2.9

func MustGenerateVisibleOne(pattern string) string

MustGenerateVisibleOne 根据正则表达式生成一个匹配的字符串(都是可见字符),如果生成失败则会崩溃,返回生成的字符串 Example: ``` regen.MustGenerateVisibleOne("[a-z]") // a-z 中随机一个字母 regen.MustGenerateVisibleOne("^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$") // 生成一个手机号 ```

func ProductString

func ProductString(sets ...[]string) []string

func ProductStringWithCallback

func ProductStringWithCallback(sets [][]string, callback func(string) error) error

Types

type CaptureGroupHandler

type CaptureGroupHandler func(index int, name string, group *syntax.Regexp, generator Generator, args *GeneratorArgs) []string

type Generator

type Generator interface {
	Generate() []string
	GenerateStream(context.Context, chan string) error
	String() string
	CheckVisible(str string) bool
}

func NewGenerator

func NewGenerator(pattern string, inputArgs *GeneratorArgs) (generator Generator, err error)

func NewGeneratorOne

func NewGeneratorOne(pattern string, inputArgs *GeneratorArgs) (geneator Generator, err error)

func NewGeneratorVisibleOne added in v1.2.8

func NewGeneratorVisibleOne(pattern string, inputArgs *GeneratorArgs) (geneator Generator, err error)

type GeneratorArgs

type GeneratorArgs struct {
	Flags               syntax.Flags
	CaptureGroupHandler CaptureGroupHandler
}

Jump to

Keyboard shortcuts

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