作者banana2014 (香蕉共和國)
看板PHP
標題[問題] 請問如何傳回所有符合某一正規表示式的所有字串?
時間Sat Jun 6 14:47:12 2015
我希望有一個函數可以傳回所有符合某一正規表示式的字符之陣列
看不懂上面句子沒關係,看下面範例:
例如:
$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://webptt.com/m.aspx?n=bbs/PHP/M.1433573234.A.270.html
1F:→ banana2014: 我的意思就是說:既然可以用函數preg_match來判斷這一 06/06 14:53
2F:→ banana2014: 字串是否符合正規表示式的條件,那麼是不是應該有函數 06/06 14:54
3F:→ banana2014: 可以找出哪些字是符合這個正規表示式的條件 06/06 14:55
4F:推 alog: 請上php net 把文件看熟 06/06 15:59
5F:→ banana2014: 我看過了,有這個函數嗎? 06/06 16:14
6F:推 alog: int preg_match ( string $pattern , string $subject [, ar 06/06 16:24
7F:→ alog: ray &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) 06/06 16:24
8F:→ alog: 記得去看參數 06/06 16:25
我照您的方法去做:
<?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
9F:→ banana2014: 啊 好像是我的pattern寫錯了... 06/06 16:45
10F:→ banana2014: 但是要怎麼改呢? a開頭e結尾... 歹謝 我正規好像不是 06/06 16:50
11F:→ banana2014: 很熟... 06/06 16:50
12F:→ bibo9901: RTFM: preg_match 06/06 16:58
13F:→ bibo9901: and preg_match_all 06/06 16:58
14F:推 KawasumiMai: preg_match_all吧?他本來就可以找出"所有符合"者 06/06 20:51
15F:→ KawasumiMai: 不然為什麼都會習慣把那個項目命名為$match"es" 06/06 20:52
16F:→ banana2014: 謝謝,我知道了,但是真正的頭大的問題還在下一篇... 06/06 21:24
17F:→ shadowjohn: 算了,連句謝謝也不會講,不回了 06/07 02:37
18F:→ banana2014: 怎麼了?! 06/07 09:37
19F:→ banana2014: 我不是有講嗎? 06/07 09:38
20F:→ banana2014: 覺得有點奇怪... 06/07 09:50