2011-12-30 25 views
1

私は式の結果を得る必要がありますが、結果に式が返されることは望ましくありません。Regex return in result

例:

私はTHISCANTRETURNJUSTCONDITIONが先行するすべてのAZを取得したい...

私が取得したい

:から

thisismyfirstvalue, thisismysecondvalue, thisismythirdvalue, thisismyfourvalue 

thisismyfirstvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismysecondvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismythirdvalueTHISCANTRETURNJUSTCONDITIONhellowworld 
thisismyfourvalueTHISCANTRETURNJUSTCONDITIONhellowworld 

私はそれを行うことができますどのように?

私は次のことを試してみたが、彼らは右ではありません。

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

は覚えている:私は、条件が結果に返されたくありません。あなたが実際に大文字と小文字の区別をしたい場合

+1

あなたはどの言語を使用していますか? –

+0

PHP ...しかし私はユーザーpreg_matchに行く私は 'を使用して//'確かに... –

答えて

1

はこれを試してみてください。私はあなたがしようとしているかを理解場合

/^(.*?)THISCANTRETURNJUSTCONDITION/ 
+0

彼は特に彼は "すべてのAZ"を望んでいた、ドットは何にもマッチします。 –

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とグループ1の内容のみ([a-z]*)に置き換えられます。