我正在尝试匹配^Description^*http://google.com*
并转换为网址。它正在使用JS,但我不知道如何将它实现到PHP Array中。
我的JS看起来像这样:
var that = $(this);
var vid = that.html().match(/\^(.*)\^/gm);
var vid2 = that.html().match(/\*(.*)\*/gm);
var vid2 = jQuery.trim(vid2).slice(1,-1);
var vid1 = jQuery.trim(vid).slice(1,-1);
that.html(function(i, h) {
return h.replace(/\^(.*)\^\*(.*)\*/gm, '<a target="_blank" href="'+vid2+'">'+vid1+'</a>');
});
我的PHP数组:
$find = array('/\*\*([^*]+)\*\*/', '/@(\\w+)/');
$replace = array('<span style="font-weight:bold">$1</span>', '<a href=/profile/$1>@$1</a>');
$result = preg_replace($find, $replace, $comment_text);
答案 0 :(得分:0)
我已经完成了这个:)
$find = array('/\*\*([^*]+)\*\*/', '/@(\\w+)/', '/\^(.*)\^\*(.*)\*/');
$replace = array('<span style="font-weight:bold">$1</span>', '<a href=/profile/$1>@$1</a>','<a target="_blank" href="$2">$1</a>');
$result = preg_replace($find, $replace, $comment_text);
答案 1 :(得分:0)
要匹配PHP中的常规渐进^Description^*http://google.com*
,您可以使用/ s修饰符(如here所述)而不是正则表达式中间的^。我测试了代码here。
<?php
$find = array('/^Description.*\*(.*)\*/s');
$replace = array('<a href="$1">$1</a>');
$comment_text = 'Description
*http://google.de*';
$result = preg_replace($find, $replace, $comment_text);
echo $result;