/^/s*((?:[^:/s]*?:)?)/

drosophilia
/^/s*((?:[^:/s]*?:)?)/

/^/s*((?:[^:/s]*?:)?)/  

有点不解, 第一个 和第二个? 是啥意思,前面好像没有前导字符啊,

例如说第一个? 前面是(    它修饰的难道是(     好像不对吧
第二个?  前面是*      *修饰的是[^:/s]     为什么还来个修饰符?  


另外就是有括号的嵌套, 到底那一个算匹配的内容(返回作为列表元素)

[[i] 本帖最后由 drosophilia 于 2008-5-14 11:03 编辑 [/i]]

churchmice
[code]
(?:pattern)
[/code]
其中的pattern是不捕获的,也就是说你不能用$1来访问,这样有来两个好处
1.运行更快
2.程序每次升级不用改变原先的$x编号

churchmice
[code]
x*?
[/code]
表示非贪婪匹配,对前面的x进行尽可能少的匹配,一开始匹配0次,如果整个匹配不成功,则匹配1次,依次类推