使用php为给定字符串设置锚定标记


Anchor tag setup for given string with php

我有以下字符串:

1)search #test
2)search https://example.com/search#test".
3)searchhttps://example.com#test"

我需要将其转换为:

第一个像

search <a href="https://example.com/search?q=test" target="_blank">#test</a>

第二个应该是简单的url-

search <a href="https://example.com/search#test" target="_blank">https://example.com#test</a>

第三个应该保持相同的

searchhttps://example.com#test"

第一个

$pattern = '/search's(#)+(.+)/';
$string = "search #test";
$string = preg_replace($pattern, 'search <a href="https://example.com/search?q='2" target="_blank">https://example.com#'2</a>', $string);
echo $string;

第二个

$pattern = '/search's(http(s)*(.*))(#)+(.+)/';
$string = "search https://example.com/search#test";
$string = preg_replace($pattern, 'search <a href="https://example.com/search#'5" target="_blank">#'5</a>', $string);
echo $string;

只需将第一个应用程序,然后将第二个应用程序应用于要处理的文本。

$pattern = '/search's(#)+(.+)/';
    $string = "whateveryouwant";
    $string = preg_replace($pattern, 'search <a href="https://example.com/search?q='2" target="_blank">https://example.com#'2</a>', $string);

    $pattern = '/search's(http(s)*(.*))(#)+(.+)/';
    $string = preg_replace($pattern, 'search <a href="https://example.com/search#'5" target="_blank">#'5</a>', $string);

编辑

第二种情况,通用url

 $pattern = '/search's(http(s)*(.*))(#)+(.+)/';
        $string = preg_replace($pattern, 'search <a href="'1#'5" target="_blank">#'5</a>', $string);

对于第一种情况,无法识别url。