2011-05-14 3 views
0

문구 교체를하고 단어 경계를 유지하고 헤더 태그 내 콘텐츠에서 일어나는 모든 동작을 생략해야하는 특별한 경우가 있습니다 (<h1><h2><h3><h4><h5>).Regex 도움말 - 단어 경계 및 헤더 태그 내 콘텐츠 제외

지금까지 내가 가지고있는 것이 있는데,> 또는 - 뒤에 올 경우 구문을 무시한다는 것입니다. 그러면 URLS 및 하이퍼 링크도 편집되지 않습니다.

preg_replace("/[^\>\.-]\b{$keywords}\b/i"," <a href='$url' target='$target'>$keywords</a> 

는 그래서 정규식에 필요 :

  1. 명예 단어 경계
  2. 헤더 태그 내에서 구문, 하이퍼 링크를 무시합니다.
  3. - (대시)를 경계로 처리합니다. \ b는 그렇게하지 않습니다.

조언이 있으십니까?

답변

0

미리보기가있는 헤더 태그에 대한 해결책을 찾았습니다.

alt 및 title 태그에서 보이는 기능을 사용하여 해결책을 찾으려고했지만 정규 표현식을 위반하지 않고 작동시키지 못했습니다. 그것은 내가 그것을 깨뜨린 lookbehind에서. + or a (. *?)를 사용할 때마다 나타난다.

1

조언 :

  • 당신이 임의의 HTML 태그 및 URL을 처리하려는 경우, 당신의 기준은 단순하고 특별한 경우 것이다 물린 당신이 언젠가는 것을 알고 있습니다.
  • 키워드가 영문자라는 것을 알고 있다면 실제로는 \b이 필요하지 않습니다. 키워드 앞뒤에 [^-a-zA-Z\/>]의 변형을 시도하십시오. (나는 당신이 슬래시를 URL에 대해 방지하는 것을 의미한다고 가정하고, 문자셋에서 \w을 사용하면 같은 문제가 발생할 수 있으므로 \b은 영숫자로 간주되기 때문에 경계로 보이지 않는 밑줄 (_)이라고 생각합니다.