gpt4 book ai didi

regex - 使用 perl,您如何处理从命令行输入中获取的正则表达式?

转载 作者:行者123 更新时间:2023-12-04 23:29:46 30 4
gpt4 key购买 nike

我正在创建一个脚本来从命令行获取正则表达式输入并处理它;像这样:

chomp(my $regex = $ARGV[0]);
my $name = '11528734-3.jpg';

$name =~ $regex;

print $name . "\n";

我对脚本的输入是:“s/.jpg/_thumbnail.jpg/g”
但 $name 不处理来自命令行的正则表达式输入。

关于如何进行这项工作的任何建议?

谢谢!

最佳答案

使用 $name =~ $regex不会改变你的 $name .您必须使用 s///运算符(operator)进行任何更改。

例如。,

$name =~ s/$pattern/$replacement/;

如果您在同一个参数中同时指定模式和替换,例如,以 s/foo/bar/ 的形式,您必须先拆分它们:
my (undef, $pattern, $replacement) = split '/', $regex;
$name =~ s/$pattern/$replacement/;

原答案:

使用 qr// :
$name =~ qr/$regex/;

您也可以只使用 $name =~ /$regex/ ,但 qr版本更通用,因为您可以存储正则表达式对象以供以后使用:
$compiled = qr/$regex/;
$name =~ $compiled;
$name =~ s/$compiled/foobar/;

等等。

关于regex - 使用 perl,您如何处理从命令行输入中获取的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970712/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com