我怎样才能操作P​​erl字符串的一部分?

Com*_* 10 0 regex perl mediawiki

我正在尝试编写一些Perl来将一些基于HTML的文本转换为MediaWiki格式并遇到以下问题:我想在某些文本的分隔子区域内进行搜索和替换,并想知道是否有人知道这样做的简洁方法.我的输入流类似于:

Please mail <a href="mailto:help@myco.com&amp;Subject=Please help&amp;Body=Please can some one help me out here">support.</a> if you want some help.
Run Code Online (Sandbox Code Playgroud)

我想改变Please help,并Please can some one help me out herePlease%20helpPlease%20can%20some%20one%20help%20me%20out%20here分别,在不改变任何其他空间的就行了.

当然,我还需要能够在线上处理多个这样的链接,因此拼接不是一个很好的选择.

我已经对Perl教程网站(这不是我的第一语言)进行了很好的了解,但没有像这样的例子.任何人都可以建议一个优雅的方式吗?

dax*_*xim 5

你的任务有两个部分.查找并替换mailtoURI - 使用HTML解析模块.Stack Overflow上详细介绍了该主题.

另一部分是规范URI.该模块URI适用于此目的.

use URI::mailto;
my @hrefs = ('mailto:help@myco.com&amp;Subject=Please help&amp;Body=Please can some one help me out here');
print URI::mailto->new($_)->as_string for @hrefs;
__END__
mailto:help@myco.com&amp;Subject=Please%20help&amp;Body=Please%20can%20some%20one%20help%20me%20out%20here
Run Code Online (Sandbox Code Playgroud)