在Perl中使用正则表达式模式生成语法?

乔丹·H

我想使用正则表达式模式不知道现有字符串是否与该模式匹配,而是生成与该模式匹配的所有可能值。例如,使用\ d \ d \ d模式,它应生成包括“ 000”,“ 001”,“ 002”等,直至“ 999”的单词。这些可以以任何格式,数组或逗号分隔列表等形式提供。如何在Perl中完成?这是内置功能还是需要模块?

它不需要处理所有可能的模式,只需为数字或字母的模式生成语言就足够了。

阿芬斯特

对于您在注释中提到的非常简单的情况(只有三位数),这只是一个很小的递归,就像这里(仅处理\d):

use strict;
use warnings;

my %results = ();    # global variables are evil

sub generate {
    my ($pattern) = @_;
    if ( $pattern =~ /^(.*)\\d(.*)$/ ) {
        my ( $before, $after ) = ( $1, $2 );
        for my $digit ( 0 .. 9 ) {
            generate( $before . $digit . $after );
        }
    } else {
        $results{$pattern} = 1;
    }
}

generate('a\db\dc');
print join( "\n", sort keys %results ), "\n";

这种递归方法实际上并不依赖于特定的语言,并且可以在任何编程语言中以相同的方式实现,这里没有Perl特定的内容。

对于更复杂的表达式,请使用Regexp::Genex@daxim建议的格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从grep Perl样式正则表达式语法到实际的Perl正则表达式模式匹配

来自分类Dev

Perl正则表达式模式

来自分类Dev

在Javascript中使用正则表达式检查模式

来自分类Dev

在模式匹配正则表达式中使用“或”

来自分类Dev

在python中使用正则表达式排除模式

来自分类Dev

在gsub r中使用正则表达式模式

来自分类Dev

在Javascript中使用正则表达式检查模式

来自分类Dev

在grep的正则表达式模式中使用OR

来自分类Dev

在正则表达式模式匹配中使用枚举

来自分类Dev

在awk中使用Perl正则表达式属性

来自分类Dev

在Perl中使用正则表达式进行匹配

来自分类Dev

如何在命令行中使用perl风格的正则表达式匹配多行模式?

来自分类Dev

如何在Perl中使用正则表达式模式(例如[aaa-bbb.com])匹配字符串

来自分类Dev

如何在命令行中使用perl风格的正则表达式匹配多行模式?

来自分类Dev

XML模式中正则表达式的正确语法

来自分类Dev

使用输入文本构造的正则表达式中的模式语法异常

来自分类Dev

正则表达式模式以使用搜索语法解析搜索词

来自分类Dev

正则表达式模式以使用搜索语法解析搜索词

来自分类Dev

正则表达式可在终端中使用,但不能在Perl脚本中使用

来自分类Dev

Java正则表达式生成模式

来自分类Dev

Java正则表达式生成模式

来自分类Dev

使用perl脚本/正则表达式避免使用特定模式

来自分类Dev

在python 3.4中使用正则表达式的语法无效

来自分类Dev

如何在CMake中使用正则表达式的{n}语法

来自分类Dev

我如何在php中使用正则表达式验证if语句的语法

来自分类Dev

在python 3.4中使用正则表达式的语法无效

来自分类Dev

使用sed / perl类正则表达式或awk展平嵌套列表模式

来自分类Dev

Perl:使用正则表达式查找文件中的模式

来自分类Dev

使用Perl正则表达式从HTML文件打印多行模式

Related 相关文章

  1. 1

    从grep Perl样式正则表达式语法到实际的Perl正则表达式模式匹配

  2. 2

    Perl正则表达式模式

  3. 3

    在Javascript中使用正则表达式检查模式

  4. 4

    在模式匹配正则表达式中使用“或”

  5. 5

    在python中使用正则表达式排除模式

  6. 6

    在gsub r中使用正则表达式模式

  7. 7

    在Javascript中使用正则表达式检查模式

  8. 8

    在grep的正则表达式模式中使用OR

  9. 9

    在正则表达式模式匹配中使用枚举

  10. 10

    在awk中使用Perl正则表达式属性

  11. 11

    在Perl中使用正则表达式进行匹配

  12. 12

    如何在命令行中使用perl风格的正则表达式匹配多行模式?

  13. 13

    如何在Perl中使用正则表达式模式(例如[aaa-bbb.com])匹配字符串

  14. 14

    如何在命令行中使用perl风格的正则表达式匹配多行模式?

  15. 15

    XML模式中正则表达式的正确语法

  16. 16

    使用输入文本构造的正则表达式中的模式语法异常

  17. 17

    正则表达式模式以使用搜索语法解析搜索词

  18. 18

    正则表达式模式以使用搜索语法解析搜索词

  19. 19

    正则表达式可在终端中使用,但不能在Perl脚本中使用

  20. 20

    Java正则表达式生成模式

  21. 21

    Java正则表达式生成模式

  22. 22

    使用perl脚本/正则表达式避免使用特定模式

  23. 23

    在python 3.4中使用正则表达式的语法无效

  24. 24

    如何在CMake中使用正则表达式的{n}语法

  25. 25

    我如何在php中使用正则表达式验证if语句的语法

  26. 26

    在python 3.4中使用正则表达式的语法无效

  27. 27

    使用sed / perl类正则表达式或awk展平嵌套列表模式

  28. 28

    Perl:使用正则表达式查找文件中的模式

  29. 29

    使用Perl正则表达式从HTML文件打印多行模式

热门标签

归档