我正在使用html标记在Perl中格式化字符串。 给定字符串S of pattern:
如何预先添加<p class="Green">
并附加</p>
以将字符串S转换为:
<p class="Green">net insider gain of xyz</p> Rupees ...........
我试过了什么?
我尝试找到net
的索引和of
的索引,然后连接<p class="Green">
和</p>
。但这种方法有点慢。
你能建议更好的方法吗?
答案 0 :(得分:3)
使用正则表达式替换:
$S =~ s!\b(net insider\b.*?)( Rupees)!<p class="Green">$1</p>$2!;
给出:
<p class="Green">net insider gain of xyz</p> Rupees
答案 1 :(得分:1)
您可以使用以下内容:
(net)(.*)(Rupess)(.*)
并替换为:<p class="Green">\1\2</p>\3\4
<强> Demo 强>
在perl中,您可以使用$1
,$2
,$3
,$4
代替\1
\2
\3
{{ 1}}
答案 2 :(得分:1)
您可以尝试使用此正则表达式来获取您喜欢的字符串
my $ip="net insider gain of xyz Rupess ..............";
if($ip =~ /(.*) Rupess (.*)/)
{
print "<p class=\"Green\">$1</p> Rupess $2";
}
else
{
print "no match..."
}
答案 3 :(得分:1)
你的问题有许多可能的答案,ritesh,因为你没有在逻辑上指明这个算法应该如何运作。相反,我们必须继续进行的是一个字符串,并尽可能地猜测其他可能的输入值。我相信Radhuram可能是正确的 - “卢比”是划分字符串的最佳值。鉴于此,我建议:
my $S = 'net insider gain of xyz Rupees ..............';
$S =~ s{(.*)( Rupees)\b}{<p class="Green">$1</p>$2};
产生:
<p class="Green">net insider gain of xyz</p> Rupees ..............