如何实现这个正则替换?急!!

qxh0724 2008-04-11 09:43:18
如何把文章中类似<a href=/x_43b2c893>的链接 替换成 <a href="/x_43b2c893">

请问这个PHP 正则怎么写?

谢谢!
...全文
126 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
剑心永远OK 2008-04-15
正则很猛``
回复
SysTem128 2008-04-12
晕……多了一个&出来~~

echo preg_replace('/(href|target|[a-z])=([^\s>"]+)/i','$1="$2"',$str);

就好
回复
SysTem128 2008-04-12

<?php
$str='
<a href=/x_43b2c893> 无完整引号
<a href="/x_43b2c893" > 有完整引号

<a href=/x_43b2c893 target=_blank> 包含其他已知属性 且 无完整引号
<a href=/x_43b2c893 target="_blank"> 包含其他已知属性 且 有完整引号

<a href="/x_43b2c893" class=aLink > 包含其他未知属性 且 无完整引号
<a href="/x_43b2c893" class="aLink" > 包含其他未知属性 且 有整引号
';
echo preg_replace('/(href|target|[a-z])=([^\s&^>^"]+)/i','$1="$2"',$str);

# 这里并没有考虑到的情况有
/**
* <a href=/x_43b2c893" > 单面引号
* <a href='/x_43b2c893' > 单引号
* 可以在清理完引号后进行上面的替换操作.
* ……
*/
?>
回复
ppxstar 2008-04-12
正则替换影响速度。
回复
fxs_2008 2008-04-12
收藏了
回复
SysTem128 2008-04-12

<?php
$str='
<a href=/x_43b2&c893> 无完整引号
<a href="/x_43b2c893" > 有完整引号

<a href=/x_43b2c893 target=_blank> 包含其他已知属性 且 无完整引号
<a href=/x_43b2c893 target="_blank"> 包含其他已知属性 且 有完整引号

<a href="/x_43b2c893" class=aLink > 包含其他未知属性 且 无完整引号
<a href="/x_43b2c893" class="aLink" > 包含其他未知属性 且 有整引号

<a href=/x_43b2c893" class=aLink" > 包含其他未知属性 且 单面引号
<a href="/x_43b2c893 class=aLink" > 包含其他未知属性 且 单面引号
';
echo preg_replace('/(href|target|[a-z])=([\"\']*)([^>"\'\s]+)[\s]*([\"\']*)/i','$1="\\3" ',$str);
?>
回复
fxs_2008 2008-04-11
¦为|
回复
fxs_2008 2008-04-11
PHP中
preg_replace('|<a href=(.*?)>|is','|<a href="\1">|',$str))
试试
回复
fxs_2008 2008-04-11
DW中

<a href=(.*?)>

<a href="$1">
测试可以
如有其他语言将$1换成\1
引号要转义
回复
fxs_2008 2008-04-11
DW中正则替换
<a href=(.*?)> (如果有空格<a href=(.*?) >)
替换
试试以下的
<a hrdf=\"$1\">
如不行去掉\
$1,换成\1


回复
剑心永远OK 2008-04-11

$str='<a href=/x_43b2c893>
<a href=/x_43b21234>
<a href=/x_43baswq3>';
var_dump((preg_replace('/<a href=/','<a href="',$str)));

你就不能去试试吗??
回复
qxh0724 2008-04-11
要用正则替换大量的 不止一个 啊

如文章中有
<a href=/x_43b2c893>
<a href=/x_43b21234>
<a href=/x_43baswq3>

全部替换成
<a href="/x_43b2c893">
<a href="/x_43b21234">
<a href="/x_43baswq3">


回复
unlive 2008-04-11
$str = '<a href=/x_43b2c893>';
$pattern = "/\/x_[a-z0-9]{8}/i";
$replacement = "\"\$0\"";
$str = preg_replace($pattern, $replacement, $str);
echo $str;
回复
剑心永远OK 2008-04-11

$str='<a href=/x_43b2c893>';
var_dump((preg_replace('/<a href=/','<a href="',$str)));
回复
sunfan1010 2008-04-11
直接替换好啦

//$str = 文章的内容
$oldstr='<a href=/x_43b2c893>';
$encode='<a href="/x_43b2c893">';
$str = str_replace($oldstr,$encode,$str);
echo htmlspecialchars($str);
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-11 09:43
社区公告
暂无公告