如何使用perl从url中删除片段



我有一个urlhttps://nasheidp.com/app/dynamicvalue/exkkilism6wisasas/sso/saml我想从url中删除动态值,结果应该是

https://nasheidp.com/app/exkkilism6wisasas/sso/saml

app/之后和/exkkilism6wisasas之前的值是完全动态的。

我正在尝试类似的东西

use URI ();
$u1 = URI->new("https://nasheidp.com/app/dynamicvalue/exkkilism6wisasas/sso/saml");
$u1->path("thereplacedwith");
print $u1;

你可以用多种方法解决这个问题,但我想;最简单的";解决这个问题的方法是使用正则表达式。

由于你的url是一个字符串,你可以用一个空字符串搜索动态值。在Perl中搜索和替换某些内容(可以在此处阅读(是使用s/valueToBeReplaced/replacedValue/完成的,其中valueToBeReplaced可以是字符串值或正则表达式,replacedValue可以是普通字符串(以及其他值,但对于您的情况,这无关紧要(。

对于您的情况,您可能希望查找/app/dynamicValue/sso零件并将其替换为/app/sso。由于CCD_ 6是";元字符";(也称为保留字符(,您需要使用对其进行转义。

这就是你可能会得到的结果:

$url = "https://nasheidp.com/app/dynamicvalue/exkkilism6wisasas/sso/saml";
$url =~ s/<pattern>//app/sso/;

对于<pattern>部分,您需要找到一个可以匹配动态部分的正则表达式。

最新更新