正则表达式返回结果

时间:2011-12-30 19:39:05

标签: php regex preg-match

我需要获得表达式的结果,但我不希望结果中返回表达式。

示例:

我希望得到所有a-z之前的THISCANTRETURNJUSTCONDITION ......

我想得到:

thisismyfirstvalue, thisismysecondvalue, thisismythirdvalue, thisismyfourvalue

从:

thisismyfirstvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismysecondvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismythirdvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismyfourvalueTHISCANTRETURNJUSTCONDITIONhellowworld

我怎么做?

我尝试过以下但是他们不对:

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

请记住:我不希望结果中返回条件。

3 个答案:

答案 0 :(得分:1)

^([a-zA-Z]*?)(?=THISCANTRETURNJUSTCONDITION),如果您确实需要区分大小写,请删除“A-Z”。

答案 1 :(得分:1)

试试这个:

/^(.*?)THISCANTRETURNJUSTCONDITION/

答案 2 :(得分:0)

由于您正在使用PHP和preg_*函数,如果我了解您正在尝试的内容,这是preg_replace()的工作。如果我得到你的意图,你不打算传递匹配,如果THISCANTRETURNJUSTCONDITION存在,而不是从字符串返回它:

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

该模式仅由Group ([a-z]*)的内容替换为$1