我目前在一個的preg_match使用3個不同的正則表達式的結果進行排序,使用或登錄|將它們分開。這工作完美。然而,第一個和第二個正則表達式具有相同類型的輸出。例如[0]源文本[1]數量金額[2]名稱 - 但是最後一個,因爲它使用不同的源文本排列結果:[0]源文本[1]名稱[2]數量。棘手的問題:如何從多個正則表達式
preg_match('/^Guo (\d+) Cars @(\w+)|^AV (\d+) Cars @(\w+)|^@(\w+) (\d+) [#]?av/i', $source, $output);
由於Name
能夠是數字我不能做一個簡單的檢查,看它是否是數字。有沒有辦法可以切換正則表達式中的順序,或者找出它匹配的正則表達式。速度是這裏的關鍵,所以我不想使用3個單獨的preg_match語句(以及更多)。
的Martijn嗨, 謝謝你的回答,你是正確的PCRE不與這裏的DUPNAMES選項編譯意味着我不能使用相同的組名稱。 我不知道單獨的REGEX可能會更快。我還沒有做過任何基準測試。 – Ice 2009-03-04 14:54:31