我想将某些模式转换为链接,就普通用户ID而言,它可以正常工作。但是现在我也想对加密的ID做同样的事情。
以下是我的代码:(作品)
$text = "hi how are you guys???... @@[Sam Thomas:10181] @@[Jack Daniel:11074] @@[Paul Walker:11043] ";
$pattern = "/@@'[([^:]*):('d*)']/";
$matches = array();
preg_match_all($pattern, $text, $matches);
$output = preg_replace($pattern, "<a href='"http://localhost/$2'" class='"tooltip'">$1</a>", $text);
现在我需要像这样链接文本:
"hi how are you guys???... @@[Sam Thomas:ZGNjAmD9ac3K] @@[Jack Daniel:ZGNjAmD9ac3K] @@[Paul Walker:ZGNjAmD9ac3K] ";
但是这种加密不是通过上面的正则表达式来识别的......
@@'[([^:]*):(.*?)']
^^
试试这个。请参阅演示。只需将'd*
更改为.*?
即可接受任何内容,'w*
仅接受数字和字母,或[^']]*
或[0-9a-zA-Z]
。
https://regex101.com/r/vD5iH9/52
更改正则表达式以接受数字和字母.
像这样的东西——
@@'[([^:]*):([0-9a-zA-Z]*)']
^^^^^^^^^^^ Replaced 'd
演示