2011-12-30 156 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取代。

相关问题