나는 텍스트에서 모든 평범한 "twitter-like hashtags"를 매치하고 그것들의 하이퍼 링크를 만들기 위해 노력하고있다.정규식 건너 뛰기 정규식?
나는 약간의 성공을 거두었지만 이상하게도 정규 표현식 /(^|\s)#(\w*[a-zA-Z_]+\w*)/
은 # 기호로 시작하는 문자열 (첫 번째 대문자는 나머지 문자가 올바르게 매칭 됨)을 건너 뛰고 있습니다. 전에 다른 것을 쓰면 첫 번째 경우가 제대로 일치합니다. # 기호가 문자열의 첫 번째 문자로 나타나는 경우에만 오류가 발생합니다.
이유가 무엇인지 알고 계십니까?
function make_hashes_into_twitter_hashtag_urls($content){
$content = preg_replace('/(^|\s)#(\w*[a-zA-Z_]+\w*)/', '<a href="http://twitter.com/hashtag/\2?src=hash" target="_blank"><span class="color_my_hash">\1#</span>\2</a> ', $content);
echo $content;
}
add_filter('the_content','make_hashes_into_twitter_hashtag_urls');
감사합니다,
'첫 번째 경우 건너 뜀'이란 무엇을 의미합니까? –
당신에게 먹이를주고있는'$ content' 샘플을 보여줍니다. 그것은'(^ | \ s)'을 집어 들지 않을 수도 있습니다. – philtune
@AvinashRaj, 나는 그가 첫 번째 인스턴스를 의미한다고 생각합니다. – philtune