2011-12-30 192 views
1

我需要得到一個表達式的結果,但我不想在結果中返回表達式。正則表達式返回結果

例子:

我想獲得通過之前THISCANTRETURNJUSTCONDITION所有AZ ...

我想獲得:

thisismyfirstvalue, thisismysecondvalue, thisismythirdvalue, thisismyfourvalue 

來自:

thisismyfirstvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismysecondvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismythirdvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismyfourvalueTHISCANTRETURNJUSTCONDITIONhellowworld 

我該怎麼辦呢?

我試過以下,但他們是不對的:

[a-z]*(THISCANTRETURNJUSTCONDITION) 
[a-z]*(?=THISCANTRETURNJUSTCONDITION) 
[a-z]*(=?THISCANTRETURNJUSTCONDITION) 

記住:我不希望條件的結果返回。

+1

您使用哪種語言? – 2011-12-30 19:41:32

+0

PHP ...但我去用戶preg_match我使用'//'當然... – 2011-12-30 19:49:57

回答

1

試試這個:

/^(.*?)THISCANTRETURNJUSTCONDITION/ 
+0

他特別說他想要「所有a-z」,點匹配任何東西。 – 2011-12-30 19:48:34

1

^([a-zA-Z]*?)(?=THISCANTRETURNJUSTCONDITION),如果您確實需要區分大小寫,請刪除「A-Z」。

0

由於您使用PHP和preg_*功能,這是preg_replace()一個工作,如果我理解你嘗試什麼。如果我知道你的意圖,你是不是希望通過匹配,如果THISCANTRETURNJUSTCONDITION存在,而是沒有從字符串返回它:

echo preg_replace("/^([a-z]*)(THISCANTRETURNJUSTCONDITION)(.*)$/", '$1', $input_string); 
//-----------------(Group1) 
//--------------------------(Group2 boundary------------) 
//-------------------------------------------------------(Group 3 after boundary) 

模式僅由組1的內容([a-z]*)$1取代。

相關問題