這是一個比PHP特定的更通用的正則表達式問題。正則表達式解析PHP中的自定義字符串語法
我給予不同的字符串可能看起來像:
A/B/PA ID U/C/D
而且我試圖提取中間斜線段有空間(「/ PA ID U」 ),使用:
preg_match('/(\/PA .+)(\/.+|$)/', '', $matches);
然而,我並沒有像我期待的那樣得到「/ PA ID U」,而是得到了「/ PA ID U/C/D」。
如何在「最後一組」中將「/.+」與「$」匹配的優先次序?
其他注意事項:
我需要的最後一組要匹配另一個「/ somethingsomthing」或「」,因爲該字符串變化很大。如果我只匹配「/.+」,如果它在行尾,例如「A/B/PA ID U」中,我將無法獲得「/ PA ID U」。
基本上,我需要能夠提取特定部分,像這樣:
鑑於:
"A/B/PA ID U/PA ID U/C/D"
提取物:
(A), (B), (PA ID U), (PA ID U), (C), (D)
[UPDATE]
我試圖避免使用split()或爆炸(),因爲這意味着我必須分別匹配「PA ID U」模式。除了僅提取斜線分隔的段,我需要驗證子字符串是否匹配特定的模式。
正是我需要的!謝謝! :D 我還在http://www.regular-expressions.info/repeat.html – 2009-02-19 07:58:28