2010-04-08 2 views
1

주어진 문자열까지 텍스트에서 부분을 제거하고 다른 문자열에서 시작하여 다른 부분을 제거하고 싶습니다. php.

/.string/i 및 /anotherstring.+/i가 작동하지 않았습니다.

+0

분명히 밝혀 지려면 하나의 키워드와 모든 텍스트 앞에 모든 텍스트를 일치 시키려고합니다. 다른 후? 각각의 경우 일치하는 텍스트를 삭제 하시겠습니까? – Mathew

+0

예 정확히 this – user311497

+0

작동하지 않는 코드를 게시하십시오. –

답변

1

/^.*$string//$string.*$/.

+0

시도했습니다. $ codehtmlfir = preg_replace ("/^.+ html/i", "", $ cahtml, 1); 아무 것도하지 않습니다. – user311497

+0

죄송합니다. 깜빡합니다. * – user311497

+0

$ codehtmlfir = preg_replace ("/^.* html/i", "", $ cahtml, 1); 가 작동하지 않습니다 – user311497

0

너무 많은 정규식을 사용할 필요는 없습니다. 위의

$str = "junk junk keyworD1 what i want1 keYWord2 junk junk keyWORD1 what i want2 KEYWORD2"; 
$s = preg_split("/keyword1|keyword2/i",$str); 
for($i=1;$i<count($s);$i+=2){ 
print $s[$i]."\n"; 
} 

, $s[1] 당신이 keyword1 후 원하는 것입니다. 키워드 쌍이 여러 개인 경우 2 단계마다 원하는 항목이 있습니다. 즉 $s[1],$s[3] 등등.

출력

$ php test.php 
what i want1 
what i want2 
+0

자, 대소 문자는 어떨까요? 때때로 키워드 나 keyWord가 될 수 있습니다. – user311497

+0

그런 다음'preg_split'과'i' 수정자를 사용하십시오 – ghostdog74

0

당신이 문자열의 발생으로 처음부터

을 원하는에 대해 더 정확하게 할 수 있도록 'regexish는'조금 더 복잡한보다하지만, 마지막 발생 처음부터 줄 바꿈

/^.*?string/ 

에 중지 문자열, 줄 바꿈 및 사례

/^.*string/si 
을 무시하고, 문자열의 마지막 발생에 줄 바꿈

처음부터
/^.*string/s 

을 무시하고, 문자열의 마지막 발생에 줄 바꿈 처음부터

/^.*string/ 

을에 중지

관련 문제