作者guardlan (亚修)
看板PHP
标题Re: [请益] preg_match_all 抓有变数的中文句子
时间Thu Nov 18 10:51:53 2010
※ 引述《juan19283746 (小阮)》之铭言:
: 恩 抱歉可能说的不是很清楚
: 给个例子好了
: 例如说现在 $tmp=跆拳道
: 然後有一段文字
: 年仅17岁的跆拳道女将黄显咏,在17日的亚运会中一日四战,连连过关斩将
: ,最终在金牌战中再以6:3击败约旦对手达娜.图兰( TOURAN Dana),勇夺女子46kg以
: 下量级金牌,也是本届亚运我国代表团的第四面金牌。这场金牌战,双方在第一回合
: 的攻势都十分保守,没有任何的建树。来到第二回合,把握一次对手图兰近身的空档
: ,黄显咏起脚下压扫中对手的头部,但裁判没有给分,在场边的韩国籍教练金洪一立
: 刻高举右手,递出红牌诉请video play,要求重新检视录影画面来做判定。
: 那麽就要抓到含有跆拳道的那一句话 也就是到下一个句点前
: 年仅17岁的*[33m跆拳道*[m女将黄显咏,在17日的亚运会中一日四战,连连过关斩将
: ,最终在金牌战中再以6:3击败约旦对手达娜.图兰( TOURAN Dana),勇夺女子46kg以
: 下量级金牌,也是本届亚运我国代表团的第四面金牌。
: 如果有多个跆拳道在不同句子 那就找第一个
: 这样应该有比较清楚?? 谢谢
我误会了...我还在想怎麽会有人想要抓变数名称...原来是我搞错了>"<
=============================================================
程式:
=============================================================
$tmp = '跆拳道';
$str = '年仅17岁的跆拳道女将黄显咏,在17日的亚运会中一日四战,连连过关斩将
,最终在金牌战中再以6:3击败约旦对手达娜.图兰( TOURAN Dana),勇夺女子46kg以
下量级金牌,也是本届亚运我国代表团的第四面金牌。这场金牌战,双方在第一回合
的攻势都十分保守,没有任何的建树。来到第二回合,把握一次对手图兰近身的空档
,黄显咏起脚下压扫中对手的头部,但裁判没有给分,在场边的韩国籍教练金洪一立
刻高举右手,递出红牌诉请video play,要求重新检视录影画面来做判定。';
echo '1. '.strmatch($str, $tmp)."\n\n";
# 测试用, 把关键字加进去
$str = '这场金牌战,双方在第一回合
的攻势都十分保守,没有任何的建树。来到跆拳道第二回合。';
echo '2. '.strmatch($str, $tmp)."\n\n";
# 没有关键字的情况
$str = '来到第二回合,把握一次对手图兰近身的空档
,黄显咏起脚下压扫中对手的头部,但裁判没有给分,在场边的韩国籍教练金洪一立
刻高举右手,递出红牌诉请video play,要求重新检视录影画面来做判定。';
echo '3. '.strmatch($str, $tmp)."\n\n";
function strmatch($str, $tmp){
if(preg_match_all('/[^。]*'.preg_quote($tmp).'[^。]*/u', $str, $matches)){
return $matches[0][0];
}else{
return 'No Match';
}
}
=============================================================
结果:
=============================================================
1. 年仅17岁的跆拳道女将黄显咏,在17日的亚运会中一日四战,连连过关斩将
,最终在金牌战中再以6:3击败约旦对手达娜.图兰( TOURAN Dana),勇夺女子46kg以
下量级金牌,也是本届亚运我国代表团的第四面金牌
2. 来到跆拳道第二回合
3. No Match
看一下是不是你需要的...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.24.202.149
1F:推 juan19283746:原来有这个涵式可以用 谢谢 11/18 19:20
2F:→ guardlan:哪个函式呀XDDDDDD 11/18 20:18
3F:→ juan19283746:strmatch阿 11/19 00:49
4F:→ gconline:strmatch是g大写的function ,记得要宣告喔XD 11/19 01:32
5F:推 juan19283746:囧 没看到 哈哈 我蠢了 11/19 11:37