Perl Regx将一个变量与另一个包含 * 变量匹配

9q78igpj  于 2022-11-24  发布在  Perl
关注(0)|答案(1)|浏览(168)
$define_file_name = "class*";
$file_name="classA1";

if($file_name =~ m/^($define_file_name)$/)
{
   print " File Name Regex matched \n"
}

如何匹配perl的regex一个变量和另一个包含'*'的变量?

wfsdck30

wfsdck301#

该正则表达式将变为:

/^class*$/

意思是:该字符串应该以文字字符clas开始,后跟s重复0次或更多次(这是PCRE中*量词的含义)。

clas
class
classsssss, etc

但它不会匹配通配符,如

classA1

为此,您需要使用通配符:.。您的正则表达式变成:

/^class.*$/

换句话说,只需在量词*之前添加一个文字句点.
您可能也会对使用glob感兴趣。例如:

for (<files/class*>) {   # <...> is shorthand for glob "..."
    # now $_ will list the files in folder "files" that begin with "class"

您也可以将它放入数组中:

my @files = glob "class*";

请注意,这要求您将实际文件放置在适当的位置,并且进程可以通过正确的路径读取这些文件。

相关问题