3 回答

TA貢獻2036條經(jīng)驗 獲得超8個贊
不確定這是否是您要找的,但我認為
<div id='1262730246668922885'>text</div>
比
<div id='1262730246668922885'></div> text
下面還根據(jù)要求刪除了 ?s=20 。
這是我用來測試表達式的腳本:
<?php
$string= "
https://twitter.com/AdamaUK_/status/1262730246668922885
text
https://twitter.com/wheat_daddy/status/1262629949908885511?s=20
text
https://twitter.com/AdamaUK_/status/1262730246668922885
text
https://twitter.com/wheat_daddy/status/1262629949908885511?s=30
# Also caters for optional http, https and www:
https://www.twitter.com/AdamaUK_/status/1262730246668922885
text
http://www.twitter.com/AdamaUK_/status/1262730246668922885
text
http://twitter.com/AdamaUK_/status/1262730246668922885
text
www.twitter.com/AdamaUK_/status/1262730246668922885
text
twitter.com/AdamaUK_/status/1262730246668922885
text
";
$pattern = "~(?:https?:\/\/)?(?:www\.)?twitter\.com\/[^\/]+/status/(\d+)(?:.+)?~";
echo preg_replace($pattern, "<div id='$1'></div>", $string);
echo "Version where the text is inside the div (Just thinking <div id='1262730246668922885'>text</div> is better than <div id='1262730246668922885'></div> text)";
$pattern = "~(?:https?:\/\/)?(?:www\.)?twitter\.com\/[^\/]+/status/(\d+)(?:.+)?\R(.+)?~m";
echo preg_replace($pattern, "<div id='$1'>$2</div>", $string);
?>
在命令行執(zhí)行時的結(jié)果:
$ php -f test.php
<div id='1262730246668922885'></div>
text
<div id='1262629949908885511'></div>
text
<div id='1262730246668922885'></div>
text
<div id='1262629949908885511'></div>
# Also caters for optional http, https and www:
<div id='1262730246668922885'></div>
text
<div id='1262730246668922885'></div>
text
<div id='1262730246668922885'></div>
text
<div id='1262730246668922885'></div>
text
<div id='1262730246668922885'></div>
text
Version where the text is inside the div (Just thinking <div id='1262730246668922885'>text</div> is better than <div id='1262730246668922885'></div> text)
<div id='1262730246668922885'>text</div>
<div id='1262629949908885511'>text</div>
<div id='1262730246668922885'>text</div>
<div id='1262629949908885511'></div>
# Also caters for optional http, https and www:
<div id='1262730246668922885'>text</div>
<div id='1262730246668922885'>text</div>
<div id='1262730246668922885'>text</div>
<div id='1262730246668922885'>text</div>
<div id='1262730246668922885'>text</div>

TA貢獻1874條經(jīng)驗 獲得超12個贊
可能有很多模式,取決于你的大腦是如何工作的。我只想尋找推特部分,然后在以下位置獲取數(shù)字/status/
:
$result = preg_replace('~https?://twitter\.com/.*?/status/(\d+).*~', "<div id='$1'></div>", $string);

TA貢獻1775條經(jīng)驗 獲得超11個贊
為什么這么復雜?
$pattern = '#https?:\/\/|www\d{0,3}[.]|twitter\.com\/([^\/]+)\/status\/(.+)#';
$1 將是用戶名,$2 是狀態(tài) ID。
- 3 回答
- 0 關(guān)注
- 151 瀏覽
添加回答
舉報