2012-07-28 2 views
0

로 시작하는 단어를 삭제하면 간단한 예입니다 :특정 편지/문자 PHP 여기

$correction = "game"; 
$text ="Hello this is an example of a $word that starts with a $dollar sign"; 
$text = str_replace("\$word",$correct,$text); 

나는 $ 텍스트를 에코 경우는 말할 것이다 : 안녕하세요이 달러 기호로 시작하는 게임의 예입니다 . 그건 잘 작동합니다. 이제는 달러 기호로 시작하는 단어를 게임 으로 변경하여 $로 시작하는 단어를 모두 "게임"으로 바꿔야합니다. 아이디어를 제공해주세요.

답변

2

을 그래서 :

preg_replace("/(\w*)$([a-z]+)/i", "$1$correction", $text); 

참고 : 정규식에 약간의 결함이있을 수 있으므로 시도하지 않았습니다.

+0

마지막 줄'$ '을주의 깊게 읽으십시오 - 첫 번째 패스에서 나도 잊어 버렸습니다! : ^) – rjz

+0

@rjz - 팁 주셔서 감사합니다! – nickb

+0

마찬가지로, 선생님! : ^) – rjz

1

간단한 정규식 트릭해야

$correction = "game"; 
$text ="Hello this is an example of a \$word that starts with a \$dollar sign"; 
$text = preg_replace('/\$\w+/', $correction, $text); 
print $text; 
5

정규 표현식 preg_replace이다 사용과 같은

$text = preg_replace('/\$[a-z]+/i', 'game', $text); 
+1

아마도 [[^ \ b] +', 아니겠습니까? – nickb

+0

전화하세요. 고마워, @nickb! – rjz

+0

나는 그것에 틀릴지도 모른다 ... 지금 [모든 것과 일치한다] (http://regexr.com?31loj). 그러나'+'가 없으면 충분하지 않습니다. 또한, 나는 이것이 "비 단어"와 일치 할 것이라고 믿습니다. 문자열에'$ 4'가 들어있는 것처럼 말입니다. – nickb

1

뭔가 : 당신은 이것에 대한 정규식이 필요합니다

$text = preg_replace("#\$[^\b\s]+#", $correction, $text);