<?
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]);
}
?>
想匹配“第*条”,“第*章”在每个段落出现的第一次,加粗再加一个空格不知道这个正则怎么写,大虾们帮忙啊!
解决方案 »
- 三级分类不递归是怎样实现的呢 (附测试代码) 求解
- 请帮忙,下边这段HTML代码那里错了?
- 帮我看看这段代码错在哪里 php,谢谢,找了一天了,找不到
- 如何用file_get_contents取cookies,session
- 如何实现这样的递归删除呢?
- 如何才叫熟悉???
- 怎么取出mysql数据表中最大的十个数?
- 请教各位大神关于php ajax的一个问题
- [求助]关于php的session问题
- 我原来的PHP用CGI方式运行,产生图片好好的,可是呢,当我改成apache模块方式运行的时候,就不支持GD库了,也就是说不能产生图片了,请问这是怎么回事啊?
- 如何用代码获得网站PR值.
- 数组排序的问题
这个是规则的写法吗?如果是的话可以这么些
echo preg_replace("/>(第.*章)/iUs", " <b>$1</b>", $str);
$source = preg_replace('/ 第([^条]*?)章/i', ' <b>第${1}章</b> ', $source);
$source = preg_replace('/ 第([^章]*?)条/i', ' <b>第${1}条</b> ', $source);
$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;?>
jnkc,你的方法我试了,只能匹配第一个,接下来的就不匹配了
<a name=\"#2\">,这个不一定有链接
我想要的是想突出每段落最前面的“第*条”,“第*章”,段落里面的不匹配!
cangyingzhijia,你好!我刚测试了下你的代码,显示的效果就是我想要的,呵呵就是有样式稍微变动了,能帮我改下么?谢谢了!本人对正则了解的太肤浅了,还望多指教啊!