我需要获得表达式的结果,但我不希望结果中返回表达式。
示例:
我希望得到所有a-z之前的THISCANTRETURNJUSTCONDITION ......
我想得到:
thisismyfirstvalue, thisismysecondvalue, thisismythirdvalue, thisismyfourvalue
从:
thisismyfirstvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismysecondvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismythirdvalueTHISCANTRETURNJUSTCONDITIONhellowworld
thisismyfourvalueTHISCANTRETURNJUSTCONDITIONhellowworld
我怎么做?
我尝试过以下但是他们不对:
[a-z]*(THISCANTRETURNJUSTCONDITION)
[a-z]*(?=THISCANTRETURNJUSTCONDITION)
[a-z]*(=?THISCANTRETURNJUSTCONDITION)
请记住:我不希望结果中返回条件。
答案 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
。