2013年8月14日 星期三

[正規表達式] 減少回傳資料的方法

我是蠻晚才發現這個方法,小的時候學正規表達式也沒看過,看到時有點相見恨晚。我不知這招的名稱,如果有特別的名稱請告知一聲。

測試了在 php 、 javascript 、 ruby、python 都可以用。


今天假設我要尋找使用者的 facebook id
facebook.com/profile.php?id=1234
fb.me/profile.php?id=1234
fb.me/1234
正規表達式這樣子寫:
*
真正想要的資料是在 $match[3] 才拿得到,而 $match[1] 和 $match[2] 其實都是垃圾。
如果在原本的 (match) 改成 (?:match)? 就可以不 match 到了

*
中間寫再多,永遠只拿 $match[1] ,是不是很方便呢?