[請益] 如何判斷字串裡是否有某個字

看板PHP作者 (加油!)時間16年前 (2008/07/29 01:22), 編輯推噓9(9015)
留言24則, 7人參與, 最新討論串1/1
例如: "Typhoon brings a lot of rain" 想要判斷這句話裡是否有 a 或是 ai 請問要用哪個函式比較快呢 我知道可以使用迴圈搭配explode完成 但是因為要判斷的字有點多 所以想說看有沒有哪個函式可以直接判斷 例如 if(XXX("a","Typhoon brings a lot of rain")) 想要問的就是XXX 當然如果有其它方式也歡迎指教~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.12.49

07/29 01:28, , 1F
沒有這種函式,你可以考慮自己寫
07/29 01:28, 1F

07/29 01:34, , 2F

07/29 01:37, , 3F
!_! 有判斷字串的啊,我錯了對不起
07/29 01:37, 3F

07/29 01:50, , 4F
謝謝各位,話說樓上也上了一課~:D
07/29 01:50, 4F

07/29 01:53, , 5F
對了,二樓網址內寫的===(三個等號)代表什麼意思阿?
07/29 01:53, 5F

07/29 02:03, , 6F
三個等號表示比較時,內容和變數形態需要相等
07/29 02:03, 6F

07/29 02:03, , 7F
舉例 0 == '0' 是true,但0 === '0' 會是false
07/29 02:03, 7F

07/29 02:04, , 8F
如果是我我會這樣寫 preg_match('/(a|ai)/', $str)
07/29 02:04, 8F

07/29 02:04, , 9F
用一用Regular Expression可以省下很多很多功夫喔
07/29 02:04, 9F

07/29 02:12, , 10F
可是通常用 String Functions 會比較快喔!
07/29 02:12, 10F

07/29 02:27, , 11F
String Functions + 迴圈 一定會比較快? O_o
07/29 02:27, 11F

07/29 03:47, , 12F
我有說「一定」嗎?還是要視情況而定的。
07/29 03:47, 12F

07/29 03:49, , 13F
原PO可以兩種方法都實際試試看
07/29 03:49, 13F

07/29 10:48, , 14F
a or ai 不是好例子,因為 ai 一定含 a;只要找 a 就好
07/29 10:48, 14F

07/29 18:00, , 15F
我是覺得 String Functions + 迴圈 「一定」比較慢..
07/29 18:00, 15F

07/29 18:00, , 16F
如果沒迴圈,當然是 String Functions 比較快...
07/29 18:00, 16F

07/29 21:34, , 17F
所以如果是RE+迴圈vs.StrFunc+迴圈,前者必較快囉?
07/29 21:34, 17F

07/29 21:35, , 18F
RE的$subject也是string,所以應該免不掉迴圈吧?
07/29 21:35, 18F

07/29 21:36, , 19F
嗯… 我看懂了,上面的問題當我沒說 XD
07/29 21:36, 19F

07/30 01:07, , 20F
implement 出來再計時最準,不然大家的文字概念化為程
07/30 01:07, 20F

07/30 01:08, , 21F
式還是有落差;要我說,寫都不見得會寫了還要快?
07/30 01:08, 21F

07/30 01:09, , 22F
如果會寫了,速度測得出差別?差多少?有沒有影響?
07/30 01:09, 22F

07/30 01:10, , 23F
不然就把目的說明白,比如是想寫個 Parser,類似可以解
07/30 01:10, 23F

07/30 01:11, , 24F
C 語言的數十個保留字(支援 user define),那當然有差
07/30 01:11, 24F
文章代碼(AID): #18ZW0yL9 (PHP)