[問題] 請問如何傳回所有符合某一正規表示式的所有字串?

看板PHP作者 (香蕉共和國)時間10年前 (2015/06/06 14:47), 10年前編輯推噓3(3017)
留言20則, 5人參與, 最新討論串1/1
我希望有一個函數可以傳回所有符合某一正規表示式的字符之陣列 看不懂上面句子沒關係,看下面範例: 例如: $string="abc How are you Im fine thanks"; print_r(f("/^a|e$/",$string)); //希望傳回陣列[0] => abc [1] => are [2] => fine 請問那個f()函數是什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.80.136.111 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1433573234.A.270.html

06/06 14:53, , 1F
我的意思就是說:既然可以用函數preg_match來判斷這一
06/06 14:53, 1F

06/06 14:54, , 2F
字串是否符合正規表示式的條件,那麼是不是應該有函數
06/06 14:54, 2F

06/06 14:55, , 3F
可以找出哪些字是符合這個正規表示式的條件
06/06 14:55, 3F

06/06 15:59, , 4F
請上php net 把文件看熟
06/06 15:59, 4F

06/06 16:14, , 5F
我看過了,有這個函數嗎?
06/06 16:14, 5F

06/06 16:24, , 6F
int preg_match ( string $pattern , string $subject [, ar
06/06 16:24, 6F

06/06 16:24, , 7F
ray &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
06/06 16:24, 7F

06/06 16:25, , 8F
記得去看參數
06/06 16:25, 8F
我照您的方法去做: <?php $string="abc How are you Im fine thanks"; preg_match("/^a|e$/",$string,$array); print_r($array); ?> 但是印出來的結果只有一個元素,其元素值為"a",這好像不是我要的結果耶... ※ 編輯: banana2014 (219.80.136.111), 06/06/2015 16:43:16

06/06 16:45, , 9F
啊 好像是我的pattern寫錯了...
06/06 16:45, 9F

06/06 16:50, , 10F
但是要怎麼改呢? a開頭e結尾... 歹謝 我正規好像不是
06/06 16:50, 10F

06/06 16:50, , 11F
很熟...
06/06 16:50, 11F

06/06 16:58, , 12F
RTFM: preg_match
06/06 16:58, 12F

06/06 16:58, , 13F
and preg_match_all
06/06 16:58, 13F

06/06 20:51, , 14F
preg_match_all吧?他本來就可以找出"所有符合"者
06/06 20:51, 14F

06/06 20:52, , 15F
不然為什麼都會習慣把那個項目命名為$match"es"
06/06 20:52, 15F

06/06 21:24, , 16F
謝謝,我知道了,但是真正的頭大的問題還在下一篇...
06/06 21:24, 16F

06/07 02:37, , 17F
算了,連句謝謝也不會講,不回了
06/07 02:37, 17F

06/07 09:37, , 18F
怎麼了?!
06/07 09:37, 18F

06/07 09:38, , 19F
我不是有講嗎?
06/07 09:38, 19F

06/07 09:50, , 20F
覺得有點奇怪...
06/07 09:50, 20F
文章代碼(AID): #1LSfTo9m (PHP)
文章代碼(AID): #1LSfTo9m (PHP)