我的字符串看起来像这个例子:
$str = "Sally sells [[seashells]] by the [[seashore]]."
我需要将上述字符串转换为:
Sally sells <a href='?action=definition&word=seashells'>seashells</a> by the <a href='?action=definition&word=seashore'>seashore</a>.
请注意方括号之间的单词如何在锚标记中使用。
任何人都可以指导我解决这个问题吗?
答案 0 :(得分:3)
尝试以下方法:
$pattern = "/\[\[([\w-]+)\]\]/";
$replace = "<a href='?action=definition&word=$1'>$1</a>";
$msg = preg_replace($pattern, $replace, $msg);
请注意,在括号[\w-]+
中搜索的令牌只会匹配字母A-Z
(不区分大小写),数字0-9
,连字符-
和下划线_
。允许太多其他类型的字符可能意味着必须在匹配上使用urlencode
作为额外步骤。