정규 표현식을 사용하여 @user 이름을 링크로 변환하고 있습니다. 예를 들어 사용자가 @Alex Ferguson을 입력하면 Alex Ferguson을 하이퍼 링크로 변환해야합니다. 여기에 첫 번째 이름을 하이퍼 링크로 변환하고 성을 제외합니다. @에 가까운 단어를 찾습니다. 이름과 성 사이에 공백이 없으면 제대로 작동합니다. 이름과 성을 모두 하이퍼 링크로 변환 할 수있는 방법이 있습니까?정규 표현식을 사용하는 PHP @mention
function convert($msg){
$message = preg_replace(array('/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))/', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#([a-z0-9_]+)/i'), array('<a href="$1" target="_blank">$1</a>', '$1<a href="">@$2</a>', '$1<a href="index.php?hashtag=$2">#$2</a>'), $msg);
return $message;
}
감사합니다 ..
항상 성이 있습니까? 그렇지 않다면 어떻게 정규 표현식이 사용자 이름에 속하는 부분을 결정해야합니까? – stema
이름과 성은 필수 항목입니다. – user1851420