作者MOONRAKER (㊣秘密情报员)
看板PHP
标题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
1F:推 JYHuang:Great! 12/24 13:18
2F:→ MOONRAKER:忘了说明,我php是5.3.15的,旧的支援就不知道怎样 12/24 14:43
3F:推 gpmm:GJ!! 12/25 02:04
4F:推 liaosankai:版主快M起来 12/25 07:48
5F:→ alog:ereg 系列已经被抛弃 php team 建议改用 preg 12/25 10:10
6F:推 tkdmaf:整串下来我只注意到「卡拉」跟「可夫」……AK47啊...... 12/25 18:04
7F:→ MOONRAKER:卡车司机卡到卡撑可夫。 12/25 19:22