我想在相对较大的文本中使用php的preg_replace
搜索并替换字符串。
搜索:[3,Name]
替换:<a href="/Name/3/">Name</a>
有人可以帮我构建正确的查询吗?
感谢。
答案 0 :(得分: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>"
如果要创建正则表达式,则需要先找到您的模式。
答案 1 :(得分:1)
我会使用类似的东西:
#\[(\d+),(\w+)\]#i
所以结果会是这样的:
preg_replace('#\[(\d+),(\w+)\]#i', '<a href="/$2/$1/">$2</a>', $text);
答案 2 :(得分: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>'
根据输入的可变性,可能会进行一些错误检查。