顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2013-12-28 01:05:33
看板 PHP
作者 MOONRAKER (㊣祕密情報員)
標題 Re: [請益] 中文字下的正規式
時間 Tue Dec 24 12:54:16 2013


※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
:      某一個欄位存著使用者姓名,不過有時會填入兩個姓名
:    如果要用正規式把第二個字遮蔽起來的話
:    陳曉東               => 陳O東
:    陳曉東、鄭中基       => 陳O東、鄭O基
:    試了試mb_ereg_replace有點難度
:    無法像英文字用\w那樣去判斷字元
:    請問有沒有什麼方向可以指點一下呢?

這個我也很有興趣,
剛試了一下,可不用再用老扣扣的mb_ereg系列,直接用preg就可以match unicode
惟regex尾巴選項要加上u。

$regex = '/卡拉\w+可夫/u';
$mres = preg_match($regex, $argv[$i], $matches);

Full code: http://ideone.com/gBTeGO

他的 \w 行為跟標準的 \w 一樣以外,也match漢字。
如果把 \w+ 改為 \w 也可以正確match一個字。

Have a good time playing around :)

$ ./cregex.php 卡拉可夫 卡拉稀泥可夫 卡拉OK可夫 卡拉OK和稀泥可夫 卡拉_可夫 卡
拉*可夫

preg_match claims 0 match for /卡拉\w+可夫/u in 卡拉可夫
Array
(
)
preg_match claims 1 match for /卡拉\w+可夫/u in 卡拉稀泥可夫
Array
(
    [0] => 卡拉稀泥可夫
)
preg_match claims 1 match for /卡拉\w+可夫/u in 卡拉OK可夫
Array
(
    [0] => 卡拉OK可夫
)
preg_match claims 1 match for /卡拉\w+可夫/u in 卡拉OK和稀泥可夫
Array
(
    [0] => 卡拉OK和稀泥可夫
)
preg_match claims 1 match for /卡拉\w+可夫/u in 卡拉_可夫
Array
(
    [0] => 卡拉_可夫
)
preg_match claims 0 match for /卡拉\w+可夫/u in 卡拉*可夫
Array
(
)


--
從前有個馬鈴薯王國 有個高貴偉大的國王
有的人尊敬他 有的人畏懼他 但有個人敢看不起他不只是一條龍
嘿呵 快出動 去征服 去擺平  嘿呵 快出征 去征服那條龍
嘿呵 快出動(宰了它!轟了它!)嘿呵 快出征 去征服那條龍

                     :■  Potatoes and Dragons (C)Alphanim France 2004-05 :.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.12.174
JYHuang:Great!1F 12/24 13:18
MOONRAKER:忘了說明,我php是5.3.15的,舊的支援就不知道怎樣2F 12/24 14:43
gpmm:GJ!!3F 12/25 02:04
liaosankai:版主快M起來4F 12/25 07:48
alog:ereg 系列已經被拋棄 php team 建議改用 preg5F 12/25 10:10
tkdmaf:整串下來我只注意到「卡拉」跟「可夫」……AK47啊......6F 12/25 18:04
MOONRAKER:卡車司機卡到卡撐可夫。7F 12/25 19:22
wotupset:http://ideone.com/Sp573o 幫你顯示結果8F 12/28 01:04

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 358 
※ 本文也出現在看板: terievv
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇