iT邦幫忙

0

【正則表達式一問???】

<?php
$a = '>PH002756<abc>PH048780<123 yes.gif';
preg_match_all('/>(PH\d{6})<(abc|123 )(?:(yes.gif))?/i',$a,$matches);
$aa = $matches[1];
$bb = $matches[3];

print_r($aa);
echo "<hr>";
print_r($bb);
?>

可以得到
Array ( [0] => PH002756 [1] => PH048780 )

Array ( [0] => [1] => yes.gif )

但是我把
(abc|123 )
換成
(.*)

結果就不能如上面所示了
重點是那個

(abc|123 )

是我設的
實際上值都是不固定的

yes.gif

有的有
有的沒有

請問要怎麼改寫呢??

1 個回答

2
weiclin
iT邦高手 4 級 ‧ 2014-03-14 20:48:30
<pre class="c" name="code">
preg_match_all('/>(PH\d{6})<([^> ]*) ?(yes.gif)?/i',$a,$matches);
wiseguy iT邦超人 1 級 ‧ 2014-03-14 23:39:58 檢舉

請樓主直接說想在什麼資料中抓出什麼特定值出來就好了。上面啦啦雜雜講一堆,還是不知道到底要抓出什麼資料?母群體又是什麼類型的資料?

weiclin iT邦高手 4 級 ‧ 2014-03-15 00:55:18 檢舉

我只看到一點, 他想把(abc|123 )換成(.*)來做比對
所以我也只針對這部份做 xD

我要發表回答

立即登入回答