Perl - 为正则表达式生成所有匹配字符串

Ron*_*nIL 2 regex perl data-generation

我是perl的新手,我想知道是否有一种方法可以生成所有匹配正则表达式的组合.

生成所有匹配字符串的最佳方法是:

05[0,2,4,7][\d]{7}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

TLP*_*TLP 5

虽然你不能只采取任何正则表达式并产生任何可能适合的字符串,但在这种情况下,你可以很容易地适应和克服.

您可以glob用来生成组合:

perl -lwe "print for glob '05{0,2,4,7}'"
050
052
054
057
Run Code Online (Sandbox Code Playgroud)

但是,我不应该告诉你,\d{7}实际上意味着几百万种组合,对吗?生成数字列表很简单,格式化它们可以通过以下方式完成sprintf:

my @nums = map sprintf("%07d", $_), 0 .. 9_999_999;
Run Code Online (Sandbox Code Playgroud)

假设你只是在寻找0-9的数字.

把那些nums与它们结合起来:Tada.