-2
가능한 중복은 :
Finetune Regex to skip tags정규식 구문 문제
현재 내 기능은 다음과 같습니다. 일반 텍스트 URL을 HTML 링크로 변환합니다.
function UrlsToLinks($text){
return preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $text);
}
그러나 몇 가지 문제가 있습니다. 내가 뭘 하려는지는 태그의 <img>
태그에 기존 링크를 건너 뛰는 것입니다.이 함수에서 무엇을 수정해야하는지 알 수 없습니다.
구문 분석하려는 문자열은 무엇입니까? –
원하는 기능을 정규 표현식을 사용하여 달성하는 것이 불가능하지는 않더라도 어렵지 않습니다. 정규 표현식은 하나도 적지 않습니다. 정말로 HTML 노드의 텍스트 내용 내에서만 링크를 찾는 HTML 파서를 사용해야합니다. – nickb
HTML 파서를 사용하여 텍스트 노드를 추출하고 위의 기능을 통해 * 노드 * 만 실행하면됩니다. HTML 조각을 무시할 수 있도록 수정하여 Tony the Pony의 진노를 없애고 우리는 모두 불타는듯한 깊은 곳에서 태울 것입니다. 그 중 하나 또는 귀하의 응용 프로그램은 불안하고 신뢰할 수없는, 두 중 하나가 될 것입니다. – DaveRandom