一个正则匹配内容的一个问题!!

chnprogram 2010-01-05 01:44:14

<?
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

$str = "
第一条【立法目的】本法是婚姻家庭关系的基本准则。

第二条【婚姻制度】实行婚姻自由、一夫一妻、男女平等的婚姻制度。

保护妇女、儿童和老人的合法权益。

实行计划生育。

第三条【禁止的婚姻行为】禁止包办、买卖婚姻和其他干涉婚姻自由的行为。禁止借婚姻索取财物。

禁止重婚。禁止有配偶者与他人同居。禁止家庭暴力。禁止家庭成员间的虐待和遗弃。

第四条【家庭关系】夫妻应当互相忠实,互相尊重;家庭成员间应当敬老爱幼,互相帮助,维护平等、和睦、文明的婚姻家庭关系。

<a name=\"#2\">第二章结婚</a>

第五条【结婚自愿】结婚必须男女双方完全自愿,不许任何一方对他方加以强迫或任何第三者加以干涉。";

$str = str_replace("\r\n","<br />  ",$str);
$str = str_replace("\n","<br />  ",$str);

echo $str;
echo "<hr size='1'>";

echo replaceCodeContent($str);

//处理法规内容里面的“第*章”,“第*条”
function replaceCodeContent($str)
{
$source = preg_replace_callback('/《(.*?)》/i', 'callBackReplace', $str);
$source = preg_replace('/  第(.*?)章/i', '  <b>第${1}章</b> ', $source, 1);
$source = preg_replace('/  第(.*?)条/i', '  <b>第${1}条</b> ', $source, 1);

return $source;
}

//处理法规内容回调函数
function callBackReplace($str)
{
$check = array (
'/《(.*?)》/i'
);

$replace = array(
'《<a href="http://code.fabao365.com/search/wd='.urlencode($str[1]).'" target="_blank" class="cb014" title="搜索:'.$str[1].'">'.$str[1].'</a>》'
);

return preg_replace($check, $replace, $str[0]);
}
?>


想匹配“第*条”,“第*章”在每个段落出现的第一次,加粗再加一个空格

不知道这个正则怎么写,大虾们帮忙啊!
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chnprogram 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cangyingzhijia 的回复:]
PHP code<?php$str="
第一条【立法目的】本法是婚姻家庭关系的基本准则。

第二条【婚姻制度】实行婚姻自由、一夫一妻、男女平等的婚姻制度。

保护妇女、儿童和老人的合法权益。

实行计划生育。

第三条【禁止的婚姻行为】禁止包办、买卖婚姻和其他干涉婚姻自由的行为。禁止借婚姻索取财物。

禁止重婚。禁止有配偶者与他人同居。禁止家庭暴力。禁止家庭成员间的虐待和遗弃。

第四条【家庭关系?-
[/Quote]

cangyingzhijia,你好!

我刚测试了下你的代码,显示的效果就是我想要的,呵呵

就是有样式稍微变动了,能帮我改下么?谢谢了!

本人对正则了解的太肤浅了,还望多指教啊!
chnprogram 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yunfeifan 的回复:]
<a name=\"#2\">第二章结婚 </a>
这个是规则的写法吗?如果是的话可以这么些
echo preg_replace("/>(第.*章)/iUs", " <b>$1 </b>", $str);
[/Quote]

<a name=\"#2\">,这个不一定有链接
我想要的是想突出每段落最前面的“第*条”,“第*章”,段落里面的不匹配!
chnprogram 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jnkc 的回复:]
PHP code$source=preg_replace('/  第([^条]*?)章/i','  <b>第${1}章</b> ',$source);$source=preg_replace('/  第([^章]*?)条/i','  <b>第${1}条</b> ',$source);
[/Quote]

jnkc,你的方法我试了,只能匹配第一个,接下来的就不匹配了
苍蝇①号 2010-01-05
  • 打赏
  • 举报
回复
<?php
$str = "
第一条【立法目的】本法是婚姻家庭关系的基本准则。

第二条【婚姻制度】实行婚姻自由、一夫一妻、男女平等的婚姻制度。

保护妇女、儿童和老人的合法权益。

实行计划生育。

第三条【禁止的婚姻行为】禁止包办、买卖婚姻和其他干涉婚姻自由的行为。禁止借婚姻索取财物。

禁止重婚。禁止有配偶者与他人同居。禁止家庭暴力。禁止家庭成员间的虐待和遗弃。

第四条【家庭关系】夫妻应当互相忠实,互相尊重;家庭成员间应当敬老爱幼,互相帮助,维护平等、和睦、文明的婚姻家庭关系。

<a name=\"#2\">第二章结婚</a>

第五条【结婚自愿】结婚必须男女双方完全自愿,不许任何一方对他方加以强迫或任何第三者加以干涉。";

echo $str;
echo "<p>";
$str= preg_replace('/^\s*第([^条]*?)条/m', '  <b>第${1}条</b>',$str);
$str= preg_replace('/^(\s*|<[^>]+>\s*)第([^条]*?)章/m', '  <b>第${2}章</b>',$str);

echo $str;





?>
江南昆虫 2010-01-05
  • 打赏
  • 举报
回复

$source = preg_replace('/  第([^条]*?)章/i', '  <b>第${1}章</b> ', $source);
$source = preg_replace('/  第([^章]*?)条/i', '  <b>第${1}条</b> ', $source);
yunfeifan 2010-01-05
  • 打赏
  • 举报
回复
<a name=\"#2\">第二章结婚</a>
这个是规则的写法吗?如果是的话可以这么些
echo preg_replace("/>(第.*章)/iUs", " <b>$1</b>", $str);
chnprogram 2010-01-05
  • 打赏
  • 举报
回复
咋就没人理呢?

21,882

社区成员

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

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