gpt4 book ai didi

regex - 随机生成器匹配正则表达式?

转载 作者:IT王子 更新时间:2023-10-29 01:05:53 26 4
gpt4 key购买 nike

有没有收到 regex 的 go 包?作为输入并返回与该正则表达式匹配的随机字符串,或者您能指导我如何实现这样的解决方案吗?

我的第一个想法是从/dev/rand 循环生成随机字节,然后返回一个与正则表达式匹配的字节,但我认为这种蛮力会很耗时,直到我找到一个与正则表达式匹配的字符串。

用例:

我打算将其用于 Web 服务测试库。

  • 一些 API 调用(例如注册用户帐户)需要唯一字段,例如电子邮件地址、电话号码等,因此需要基于模式/正则表达式的随机输入生成器。

  • 随机属性还有助于防止过时数据/误报(即在当前测试套件之前存储的数据)。我猜生成器不需要提供加密级别的随机性,而是需要提供类似 GUID 的东西。

最佳答案

Reggen是我编写的一个库,可以从正则表达式生成字符串。它可用于生成您需要的电子邮件地址/电话号码,以及使用正则表达式指定的任何其他内容。

一般来说,提供的正则表达式越具体,它给出的结果就越好。例如,正则表达式 .*@.*\..* 可能生成类似于 F$-^@A"%mk.^uv 的内容,但是 [ a-z]+@[a-z]+\.(com|net|org) 应该会产生更易读的内容,例如 bfeujqp@qtpqby.com

使用库生成电子邮件地址:

import "github.com/lucasjones/reggen"

func main() {
str, err := reggen.Generate("^[a-z]{5,10}@[a-z]{5,10}\\.(com|net|org)$", 10)
if err != nil {
panic(err)
}
fmt.Println(str)
}

典型输出:

tpbry@sfmxet.net

关于regex - 随机生成器匹配正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35756696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com