【问题标题】:Can I Generate the Set of Chars from Regex Pattern?我可以从正则表达式模式生成字符集吗?
【发布时间】:2014-03-18 19:58:33
【问题描述】:

我有正则表达式,例如 [ABC]、[A-Z]、[0-9]、[A-Z,0-9]、[^A-Z]。我可以从正则表达式模式生成一组字符吗? 谢谢。

编辑: 在爪哇。我发现http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/RandomStringUtils.htmlrandom(int count, String chars) 类存在用于生成随机代码。

但我需要使用正则表达式模式生成代码。

【问题讨论】:

    标签: java regex


    【解决方案1】:

    perl 中的String::Random 可能对你有点帮助,它采用正则表达式并给出满意数据的值。

    use String::Random;
    my $string_gen = String::Random->new;
    print $string_gen->randregex('\d\d\d'); # Prints 3 random digits
    

    #Prints 3 random printable characters
    print $string_gen->randpattern("...");
    

    【讨论】:

      【解决方案2】:

      请注意,正则表达式可能比您显示的字符集复杂得多。

      如果您将自己局限于字符集,我认为有两种可行的方法:

      • 自己解析字符集,实现好正则表达式字符类的规则。
      • 如果您可以/想要忽略 Unicode 字符,只需遍历所有 256 个字符(chr(0) - chr(255)),尝试使用一些正则表达式引擎将正则表达式与字符进行匹配。

      请详细说明您下次使用哪种语言,以便举例说明。

      【讨论】:

        猜你喜欢
        • 2021-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-04
        • 1970-01-01
        • 2013-06-06
        相关资源
        最近更新 更多