Re: [請益] preg_match_all 抓有變數的中文句子
※ 引述《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
推
11/18 19:20, , 1F
11/18 19:20, 1F
→
11/18 20:18, , 2F
11/18 20:18, 2F
→
11/19 00:49, , 3F
11/19 00:49, 3F
→
11/19 01:32, , 4F
11/19 01:32, 4F
推
11/19 11:37, , 5F
11/19 11:37, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):