我正在寻找考虑间距问题的正则表达式。我有我的代码执行以下操作: 如果类从base_class继承,那么只需将当前类名称推入数组,然后将grep用于扩展类名称,并将扩展类名称和当前类名称都推入阵列。正则表达式来grep一个特定的单词,同时考虑在单词前发生的空格
my $key = "class " . $current_class_name . " extends";
my $variable1 = "extends base_class";
if(/$key/){
if(/($variable1)/){ # Checking if it extends from "base_class"
push @test_list, $current_class_name ; # Pushing the test name if it extends from "base_class"
}
else { # If it doesn't extend from "base_class"
/.extends[\s]+([A-Za-z_0-9]+)/ ;
push @test_list, $1; # Pushing the extended test name into array
push @test_list, $current_class_name; # Pushing the current test name into array
}
}
我有2个问题。 1)grep命令字符串$键(if(/$key/)
)如何考虑间距问题,即如果我们有class $current_class_name extends
,说明有串class
和$current_class_name
和也同样之间$current_class_name
和extends
之间有很多的空间。如果我们观察我的代码的第一行,我们可以看到它认为这些字符串之间存在单个空格。但我想处理任何数量的空间的情况。 (1个空间到最多10个空间)。 所以,请帮我解决这个问题。
2)同样,当我们拿这之后,这些行代码扩展了一句话:
/.extends[\s]+([A-Za-z_0-9]+)/ ;
push @test_list, $1;
如何走字,推动它,如果扩展的类名称之后很多空格后出现extends
字符串。
我希望我的解释清楚。如果我的问题的任何部分不清楚,请发表评论。我会相应地编辑它。
感谢
这是一个非常明确和信息丰富的答案。我可以解决我的问题,并学习正则表达式。再次感谢。 –