Regex 如何在perl glob中匹配数字
这是一个有效的全局选项吗?我可以使用\d匹配目录路径中的数字吗Regex 如何在perl glob中匹配数字,regex,perl,glob,Regex,Perl,Glob,这是一个有效的全局选项吗?我可以使用\d匹配目录路径中的数字吗 $dir#path应该得到“/abc/dir-#.#.#.#.#.#.#.#.#.#”存在(其中#是任何数字),否则“我的dir不存在”字符串您在标量上下文中调用了glob的两个实例(但不是作为迭代器),这是非常错误的。比如说, $dir_path = (-d ("./abc/dir-\d.\d.\d")) ? glob("./abc/dir-\d.\d.\d/my-dir*") : "my-dir-does
$dir#path应该得到“/abc/dir-#.#.#.#.#.#.#.#.#.#”存在(其中#是任何数字),否则“我的dir不存在”字符串您在标量上下文中调用了
glob
的两个实例(但不是作为迭代器),这是非常错误的。比如说,
$dir_path = (-d ("./abc/dir-\d.\d.\d")) ?
glob("./abc/dir-\d.\d.\d/my-dir*") : "my-dir-doesnot-exists";
glob语言与regex语言完全不同<代码>\d不起作用,但[0123456789]
会起作用
my $foo = glob("a");
my $bar = glob("a");
say $foo // "[undef]"; # a
say $bar // "[undef]"; # [undef]
1.我不想在-d中添加glob,现在就编辑代码。2.明白了,谢谢。3.我现在重新措辞了这个问题,请看它是否澄清。谢谢。好的,我知道了<代码>\d\d可以翻译成
[0123456789][0123456789]
。但是如何将\d+
翻译成glob?@SL5net。你不能。(这将生成一个无休止的列表)好的。然后may\d{1,5}创建了一个5行的结束列表,may在@SL5net中工作,foo\d{1,5}
将是foo[0123456789]foo[0123456789][0123456789][0123456789][0123456789][0123456789]foo[0123456789][0123456789][0123456789][0123456789]foo[0123456789][0123456789][0123456789][0123456789][[0123456789]*
就足够了?(我错认为“那将生成一个无休止的列表”。当{}
生成时,[]
匹配。)
my @dir_paths = glob("./abc/dir-[0123456789].[0123456789].[0123456789]/my-dir*");
die "No match!" if !@dir_paths;
die "Too many matches!" if @dir_paths > 1;
my $dir_path = $dir_paths[0];