Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Preg_替换从末尾开始的最后一次出现_Php_Regex - Fatal编程技术网

Php Preg_替换从末尾开始的最后一次出现

Php Preg_替换从末尾开始的最后一次出现,php,regex,Php,Regex,我有一个代码可以替换加载的html上的所有ocurrence,我应该如何修改它以仅替换从加载的html结尾开始的第一个ocurrence $body = preg_replace('#<div>https://site.com/(.*?)<br />#', '<a href="site.com/$1" target="_blank">https://site.com/$1</a><br />', $body); $body=preg\

我有一个代码可以替换加载的html上的所有ocurrence,我应该如何修改它以仅替换从加载的html结尾开始的第一个ocurrence

$body = preg_replace('#<div>https://site.com/(.*?)<br />#', '<a href="site.com/$1" target="_blank">https://site.com/$1</a><br />', $body);
$body=preg\u replace('#https://site.com/(.*)
#',“
',$body);
我加载的html:(已压缩,没有任何换行符)

https://site.com/?k=tZ1gXCyS!fywvS1E9rmnUJyjEWOkH0zHZ
https://site.com/#!BJchGYSB!AV27MWAKV7ZVNU9UL0FG3UUDFBOYM2LK9NEYZJP_1I
https://site.com/#!MdM3lDga!HHlk9SvherA-lynaffdd9sbewkup3dn9oelcpvhf2myc
https://site.com/#!EQ8CwZoA!QJVJMgn2cj-cmIX51Hn2OH8ySPYWw5Xy-e9tX53emDY
https://site.com/#!斯雷克斯萨!ZfupZMZTPF9DROHX4WNTDYO4PakWux0GKH-vToQ5ec
https://site.com/#!NUtVmQbb!eT0qf05YySrq-HXHJ53LMTI1BCWSRPB50NSZQH5MLG
https://site.com/#!伊克迪姆利亚!eoeI0xz-BAoVRnbL_1W2DQMUmBYtXQaaVS7-G69fY5w
https://site.com/#!QFVnFAKD!RhXtx3pPFrrpxw3kKmkw2ScEBgR1pD_byIvpWHHQ6ok
https://site.com/#!1VtDRI5J!ZUNHTXKTNNRF29Z0 AKLULSBSSGLZ0-F_45TpmEhwijz8
我需要更换最后一个

https://site.com/(.*)
(链接始终更改)带
https://site.com/$1
(仅限从末尾开始的最后一场比赛或第一场比赛)

所以输出应该是这样的:

<div class="clearfix spoiler"><div>https://site.com/?k=tZ1gXCyS!fywvS1E9rmnUJyjEWOkH0zHZ<br />https://site.com/#!BJchGYSB!Av27mwaKMv7zVNu9uL0fg3uUDfBoym2Lk9NeyZJp_1I<br />https://site.com/#!MdM3lDga!HHlk9SvherA-LYNAfDd9SBEwKUp3dn9oELCPVHf2mYc<br />https://site.com/#!EQ8CwZoA!QJVJMgn2cj-cmIX51Hn2OH8ySPYWw5Xy-e9tX53emDY<br />https://site.com/#!sRESXSSa!ZFuNpzMzTpF9DRohX4WNTDyo4pAkwuX0Gkh-vToQ5ec<br />https://site.com/#!NUtVmQbb!eT0qf05YySrq-hXHhj53lmTi1bcWsprB50NsZqh5MLg<br />https://site.com/#!IcdymLia!eoeI0xz-BAoVRnbL_1W2DQMUmBYtXQaaVS7-G69fY5w<br />https://site.com/#!QFVnFAKD!RhXtx3pPFrrpxw3kKmkw2ScEBgR1pD_byIvpWHHQ6ok<div>https://site.com/#!1VtDRI5J!ZUNHtxKTnnrF29z0AKLULSbsgLZ0-F_45TpmEhwijz8</div></div>
https://site.com/?k=tZ1gXCyS!fywvS1E9rmnUJyjEWOkH0zHZ
https://site.com/#!BJchGYSB!AV27MWAKV7ZVNU9UL0FG3UUDFBOYM2LK9NEYZJP_1I
https://site.com/#!MdM3lDga!HHlk9SvherA-lynaffdd9sbewkup3dn9oelcpvhf2myc
https://site.com/#!EQ8CwZoA!QJVJMgn2cj-cmIX51Hn2OH8ySPYWw5Xy-e9tX53emDY
https://site.com/#!斯雷克斯萨!ZfupZMZTPF9DROHX4WNTDYO4PakWux0GKH-vToQ5ec
https://site.com/#!NUtVmQbb!eT0qf05YySrq-HXHJ53LMTI1BCWSRPB50NSZQH5MLG
https://site.com/#!伊克迪姆利亚!eoeI0xz-BAoVRnbL_1W2DQMUmBYtXQaaVS7-G69fY5w
https://site.com/#!QFVnFAKD!RhXtx3pPFrrpxw3kKmkw2ScEBgR1pD_byIvpWHHQ6okhttps://site.com/#!1VtDRI5J!ZUNHTXKTNNRF29Z0 AKLULSBSSGLZ0-F_45TpmEhwijz8
您可以修改搜索,以确保它不包含字符串其余部分的

。为此,您需要输入如下内容:
#
https://site.com/((?:(?!
)*?)#
作为搜索字符串。
是,它检查以确保前面不存在该字符串,然后
捕获您通常期望的内容。

您可以修改搜索以确保它不包含该字符串其余部分的

。为此,您需要输入如下内容:
#
https://site.com/((?:(?!
)*?)#
作为搜索字符串。
是最简单的方法,它检查以确保字符串前面不存在,然后
捕获您通常期望的内容。

最简单的方法是在开头和结尾添加一个
(.*)
组,在结尾添加一个
$
,以及一个
s
修饰符,以便
匹配换行符。第一个组将包含到最后一个实例的所有内容(因为
*
是贪婪的),最后一个组将在后面捕获所有内容

$body = preg_replace(
    '#(.*)<div>https://site.com/(.*?)<br />(.*)$#s',
    '$1<a href="site.com/$2" target="_blank">https://site.com/$2</a><br />$3',
    $body
);
$body=preg\u replace(
'#(.*)https://site.com/(.*)
(.*)$#s', “$1
$3”, $body );
最简单的方法是在开头和结尾添加一个
(.*)
组,在结尾添加一个
$
,以及一个
s
修饰符,以便
匹配换行符。第一个组将包含到最后一个实例的所有内容(因为
*
是贪婪的),最后一个组将在后面捕获所有内容

$body = preg_replace(
    '#(.*)<div>https://site.com/(.*?)<br />(.*)$#s',
    '$1<a href="site.com/$2" target="_blank">https://site.com/$2</a><br />$3',
    $body
);
$body=preg\u replace(
'#(.*)https://site.com/(.*)
(.*)$#s', “$1
$3”, $body );
谢谢您的帮助,我有以下代码:
$body=preg\u replace('#
https://mysite.com/((?!
)*?#','https://mysite.com/$1',$body),它可以工作,替换最后一次出现,但输出是
https://mysite.comz/8
Excellent,它很管用!。还有一件事。。。如果我需要为任何域?执行此操作,请提前感谢。。向上的您应该可以将
site.com
替换为
*?
。感谢您的帮助,我有以下代码:
$body=preg\u replace('.\br/>https://mysite.com/((?!
)*?#','https://mysite.com/$1',$body),它可以工作,替换最后一次出现,但输出是
https://mysite.comz/8
Excellent,它很管用!。还有一件事。。。如果我需要为任何域?执行此操作,请提前感谢。。向上的您应该能够将
site.com
替换为
*?