問題是:如何使用只有(和單個)正則表達式?可能嗎?PHP:獲取正則表達式中的所有組
說明:我有一個這樣的數組:
array
(
[0] => 'code1-{1,5}{a,c}',
[1] => 'code2-{3,6}{s,q}'
)
和我想要做的是讓使用正則表達式,所有的值進行分組,如:
code1
1,5
a,c
我知道我可以使用這個正則表達式得到{...}
內的所有數據:
'/\{([^\}]*)\}/i'
而且我知道我可以用這一個
/(.*?)\-/i
我不知道的是,如果有可能合併這兩正則表達式得到破折號前的字符串。逸岸,如果我有這樣的正則表達式
'/(.*?)\-\{([^\}]*)\}/i'
我不能得到我需要的所有數據。我也知道,我可以做這樣的事情:
'/(.*?)\-\{([^\}]*)\}\{([^\}]*)\}/i'
但如果輸入的格式將變爲比如說10 {...}組,它沒有那麼優雅有10組的形式\{([^\}]*)\}
這不是我的問題的重點。
這裏有我想要的代碼:
一正則表達式('/\{([^\}]*)\}/i'
):http://ideone.com/mN3T2
合併後的正則表達式('/(.*?)\-\{([^\}]*)\}/i'
):http://ideone.com/gMdOa