-2

我想preg_replace在相对较大的文本中使用 php 在字符串中搜索和替换。

搜索:[3,Name] 替换:<a href="/Name/3/">Name</a>

有人可以帮我建立正确的查询吗?

谢谢。

4

3 回答 3

2

帮助构建您的查询:

 0: [3,Name]

 1: "[" "3" "," "Name" "]"
     1   2   3    4     5

 2: "[" \d+ ","   \w+  "]"
         1         2           

 3: "<a href=\"" 2 "/" 1 "/\">" 2 "</a>

 4: "<a href=\"Name/3/\">Name</a>"

如果你想创建一个正则表达式,你需要先找到你的模式。

于 2012-11-07T22:09:19.437 回答
1

我会使用类似的东西:

#\[(\d+),(\w+)\]#i

所以结果会是这样的:

preg_replace('#\[(\d+),(\w+)\]#i', '<a href="/$2/$1/">$2</a>', $text);
于 2012-11-07T22:08:13.450 回答
0

我会使用explode()

$string='[3,Name]';
$string=str_replace(array(']','['),array('',''),$string);//remove the brackets
$array= explode(',',$string);
echo '<a href="/'.$array[1].'/'.$array[0].'/">'.$array[1].'</a>'

也许根据您输入的可变性进行一些错误检查。

于 2012-11-07T22:07:18.937 回答