Re: [請益] 如何分割中問字串與英文字串?

看板PHP作者 (㊣火星人玩轉地球)時間8年前 (2017/01/11 12:14), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
※ 引述《aaa6542005 (Poppy)》之銘言: : 我有用過preg_match : 但好像要整個字串都是英文或中文才會是true : 有啥方法可以做到抓出中文的部分呢? php > $t='書本book'; php > preg_match_all('/([^A-Za-z]+)/', $t, $m1); php > print_r($m1); Array ( [0] => Array ( [0] => 書本 [1] => ) [1] => Array ( [0] => 書本 [1] => ) ) 真是太神奇了,賊克! -- 從前有個馬鈴薯王國 有個高貴偉大的國王 有的人尊敬他 有的人畏懼他 但有個人敢看不起他不只是一條龍 嘿呵 快出動 去征服 去擺平 嘿呵 快出征 去征服那條龍 嘿呵 快出動(宰了它!轟了它!)嘿呵 快出征 去征服那條龍 :■ Potatoes and Dragons (C)Alphanim France 2004-05 :. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.110.133 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1484108064.A.1A2.html

01/11 14:10, , 1F
上面那樣會多match一個空字串 檢查一下empty()就可以
01/11 14:10, 1F

01/11 14:11, , 2F
不然可以改成比較囉唆的/([^\x00-\x20A-Za-z]+)/
01/11 14:11, 2F

01/11 14:17, , 3F
再不然可以用 /([\p{Han}]+)/u
01/11 14:17, 3F

01/11 14:19, , 4F
注意尾巴的u 這應該是pcre match unicode最徹底的方法
01/11 14:19, 4F

01/11 15:40, , 5F
感謝!
01/11 15:40, 5F
文章代碼(AID): #1OTR4W6Y (PHP)
文章代碼(AID): #1OTR4W6Y (PHP)