我可以从正则表达式模式中生成一组字符吗?

时间:2014-03-18 09:59:38

标签: java regex

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

EDITED: 在Java中。我发现存在用于生成随机代码的http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/RandomStringUtils.html random(int count,String chars)类。

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

2 个答案:

答案 0 :(得分:0)

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("...");

答案 1 :(得分:0)

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

如果你限制自己使用字符集,我会看到两种可行的方法:

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

请在下次提供您正在使用的语言的一些详细信息,以便更容易举例。