gpt4 book ai didi

regex - 快速正则表达式 Perl 未终止

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

我正在尝试将 Wiki 标记转换为 HTML 标记,即

[[Image:wiki.png]]
[[Image:wiki.png|Wikipedia, The Free Encyclopedia.]]

<img src="wiki.png" alt=""/>
<img src="wiki.png" alt="Wikipedia, The Free Encyclopedia."/>

使用一行Perl

s/\[\[Image:(\w+?\.png)\|{0,1}(.*?)\]\]/g;
print;

但是 Perl 不断抛出错误

Substitution replacement not terminated

它适用于 this RegExr test并且更改分隔符并没有解决问题。任何见解将不胜感激。

最佳答案

您有一个没有替换字符串的正则表达式替换。它应该看起来像

s/PATTERN/REPLACEMENT/

而你只有

s/PATTERN/

所以 Perl 告诉你替换没有终止。

这个程序使用你的正则表达式来做你想做的事

use strict;
use warnings;

for (<DATA>) {
s/\[\[Image:(\w+?\.png)\|{0,1}(.*?)\]\]/<img src="$1" alt="$2"\/>/g;
print;
}

__DATA__
[[Image:wiki.png]]
[[Image:wiki.png|Wikipedia, The Free Encyclopedia.]]

输出

<img src="wiki.png" alt=""/>
<img src="wiki.png" alt="Wikipedia, The Free Encyclopedia."/>

关于regex - 快速正则表达式 Perl 未终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036418/

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