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

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

请问这个PHP 正则怎么写?

谢谢!
...全文
160 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑心永远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);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧