2009-12-13 5 views
0

이것이 제가 RegEx를 위해 얻은 것입니다. 이것이 최선의 방법인지 궁금합니다.RegEx, preg_replace_callback Question PHP

식별자 사이의 간격에 관계없이 대소 문자를 구별하지 않고 비슷한 것을 찾을 수 있기를 바랍니다. 그리고 가능하면 .. 순서에 대해 걱정하지

예 :

여기
[Foreclosure ="Remax" URL="http://www.remax.com" Title = "4 Bedroom 2 Bath Condo"] 
[Foreclosure ="Remax"URL="http://www.remax.com"Title="4 Bedroom 2 Bath Condo"] 
[Foreclosure = "Remax" URL="http://www.remax.com"  Title = "4 Bedroom 2 Bath Condo" ] 

의 기존 코드 :

function ForeclosureCode_filter($buffer) 
{ 
    //There might be a better way to do the regex... But this seems to work... 
    $buffer = preg_replace_callback('@\[Forclosure *=*"(.*?)" *url *=*"(.*?)" *title="(.*?)" *\]@si', 
     "ForeclosureCode_replace", $buffer); 
    return $buffer; 
} 
+0

소리가 혼란스러워 ... 답변 : 이전 표현이 0 개 이상입니다. 제 방어도 RegEx를 전혀 사용하지 않았습니다 .. – Brad

+0

왜 몇 가지 * = 다음? –

+0

RegEx를 사용하여 내가하는 일을 정말로 알지 못하기 때문에 ... 나 혼란스러워. 나는 적어도 그것을 이해하기 위해 "노력하고있다", VS는 다른 누군가에게 나를 위해 모든 일을하도록 부탁한다. 나는 여기에 이것이 무엇을위한 정규 표현식인가라고 말할 수있다. – Brad

답변

5

내가 공백의 무기한 금액에 맞게 \s*를 사용하십시오; 이렇게하면 일반 공백뿐만 아니라 모든 공백 형식을 포함 할 수 있으므로 탭과 일치시킬 수 있습니다.

'@\[Foreclosure\s*=\s*"(.*?)"\s*url\s*=\s*"(.*?)"\s*title="(.*?)"\s*\]@si' 
+0

완벽하게 작동합니다, 감사합니다. – Brad

+2

그의 대답을 받아들입니다! –