2016-01-26 8 views
1

我有一個遺留代碼,它使用正則表達式搜索大文本中的某些文本模式,並用鏈接替換它們。這些表達式有許多可選參數,如解析正則表達式本身並提取所需的部分

(free.?)?(online.?)?Blackjack 

爲了加快速度我想在運行之前做一個快速檢查與普通的舊strpos並尋找表達所需的一部分(在這種情況下,「黑傑克」)用preg_replace冗長的替換。有沒有辦法處理表達式本身並只提取所需的部分?我認爲這是由另一個正則表達式完成的,但以防萬一,我使用PHP。

+0

類似'(\([^)] * \)\?''? –

+0

我不相信正則表達式解析正則表達式是一個好主意。如果可能的話(可能是這樣),它不會比你現在正在做的更快。這就是說,這個問題/答案可能有一些關於將正則表達式解析成部分的信息。 http://stackoverflow.com/questions/4594135/a-parser-for-regular-expressions-in-php。 – Scott

+0

@Thomas這似乎選擇了可選部分:)但這絕對是我的起點,謝謝! –

回答

0

您可以從(\([^)]*\)\?)將您原有的可選部件替換爲空白,這將爲您提供所需的部件。