2013-02-02 74 views

回答

1

(?:[0-9]+/?)+(?=_)

(?:   = open non-capturing subpattern 
    [0-9]+ = digit, one or more times 
    /?  = possibly followed by a forward slash 
)    = close non-capturing pattern 
+    = the preceding non-capturing subpattern, one or more times 
(?=   = open look ahead assertion: 
    _   = the pattern must be followed by an underscore 
)    = close look ahead assertion 

RegExr example

帶有一個波浪~作爲分隔符:

~(?:[0-9]+/?)+(?=_)~

或者以斜槓作爲分隔符:

/(?:[0-9]+\/?)+(?=_)/

注意:這一次你必須在模式中跳過正斜槓。

+0

完美 - 謝謝,fireeyedboy;) – Chris

+0

原來我得到以下錯誤 - 警告:preg_match():未知修飾符'?' - 有任何想法嗎? – Chris

+0

@xtiaan由於我在模式中使用了未轉義的正斜槓,因此您需要使用不同的分隔符。例如,代字符「〜」。或者,如果您想繼續使用正斜槓作爲分隔符,請在模式中跳出正確的斜線:'\ /'。請參閱我的編輯。 –

0

我發現的最簡單和兼容的東西。我不是RegExp專家。

[0-9_]+(?!..jpg$)

然後,它的匹配數組的最後一個值。