2012-02-15 3 views
0

는 다음 사항을 고려 하나의 단어에 자본 문자와 일치합니다 출력은 다음과 같습니다업데이트 정규식은

{RT} @fo {RT} unemagazine Comment here {RT} @foo Blah 

나는 정규식이 같은 실수 덮여 있었다 생각했다. "RT @UserName"또는 중간 어딘가에서 "RT @UserName ..."과 같은 문자열의 시작 부분에있을 수 있지만 항상 대문자와 일치하는 정확한 RT 만 일치해야합니다. 올바른 "RT "다음에"공백 "이 아닌 다른 문자가오고"username "은 -zA-Z_

이 될 수 있습니다.

정규식에서 나는 무엇을하고 있습니까?

답변

1
return preg_replace("/\bRT\b/", $tag, $tweet); 
1

정규 표현식에서 i를 추가하여 대소 문자를 구별하지 않으려면 대문자 RT와 일치하도록 대소 문자를 구분하지 않습니다.

+0

하고 설명하는 문제를 해결하지 않습니다 여전히이 조언 – zerkms

+0

@zerkms "공백 이외의 문자 뒤에"RT하지만 "결코은 유효" 주된 문제, 잘못 사용 된 옵션 인'i'를 다루는 반면, 당신의 대답은 아무것도 설명하지 않고 단지 코드의 라인 일뿐입니다. – stema

+0

@stema : OP가 2 줄의 코드를 비교하고 그 차이를 볼 수있을만큼 충분히 경험이 있다고 가정했습니다. 그 후 일부 설명서를 읽으십시오. – zerkms

1
preg_replace("/RT(?=\s)/", $tag, $tweet); 

http://ideone.com/P7dxm

+0

OP에는 공백 문자가 아닌 "RT"다음에 사용자 이름이 오는 공백이 필요합니다. – stema

+0

@stema : OP에는 RT 뒤에 사용자 이름이 오는 공백이 필요합니다. 후자는 주어진 솔루션의 기초에있는 작은 자신입니다. – zerkms