gpt4 book ai didi

regex - 为什么我的替代品中的 $1 是空的?

转载 作者:行者123 更新时间:2023-12-01 07:12:21 25 4
gpt4 key购买 nike

我试图将括号内的内容放入 img 标签中 src 属性的值中:

while(<TOCFILE>)
{
$toc_line = $_;
$toc_line =~ s/<inlineFig.*?(\.\.\/pics\/ch09_inline99_*?\.jpg)*?<\/inlineFig>/<img src="${1}" alt="" \/\>/g;
$new_toc_file .= $toc_line;
}

所以我希望在输出中看到这样的标签:
<img src="../pics/ch09_inline99_00" alt="" />

但相反,我得到:
<img src="" alt="" />

最佳答案

您的正则表达式中存在错误,因此该短语永远不会匹配任何内容:

inline99_*?\.jpg
^^^

我想你忘了 \d在星星前面,根据您尝试匹配的示例数据判断。

您甚至没有要求它会匹配,就像您输入 *? 一样被俘组后。所以,它只是不匹配任何东西。所以这就是你得到的:什么都没有。

除了:
($PATTERN)*?

只会捕获它匹配的最后一个东西。那可能也不是您想要的。
例如:
$_ = 'one two three';
s/(\w+\s*)*/$1/;
print;

打印“三”。

关于regex - 为什么我的替代品中的 $1 是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/344460/

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