我有以下字符串:
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。