php 정규식 문의 드립니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
preg_replace("/(@$val)([$\s<&,님])/u", "$1 블라블라 $2", $content)
현재 이런 정규식을 사용해서 @홍길동을 -> 블라블라 홍길동
으로 변경해서 사용중입니다.
그런데 /@홍길동과 같이 /(슬래시)가 바로 앞에 붙은 경우만 제외를 하려고 하는데 잘 안되네요.
제가 시도한 건
/[^\/]+(@홍길동)([$\s<&,님])/u
이렇게 테스트 사이트에서 해보니 잘 되는데 실제 문서 출력에 적용하니 매칭이 모두 안되는 결과가 나옵니다.
댓글 4
/((?<!\/)@홍길동)([$\s<&,님])/u
이렇게 했습니다. 시연해 보니 잘 되는데 제가 의도한대로 반영된 거겠죠??
네. 맞습니다. ㅎ
제가 야심차게 준비한 회원 각각의 블로그를 @닉네임 으로 접근 할 수 있는데 본문,댓글에서 호출(언급)을 하기 위해 @닉네임을 사용한 경우 본문 출력전에 자동으로 도메인/@닉네임 링크를 걸어주고 있거든요.
그런데 제가 이러한 블로그 고유 주소를 설명하려고 글을 작성 하다보니
와 같이 예시된 주소를 보여주고 싶은 지인이나 다른 곳에 공유해 보라고 작성을 했는데 이게 여기에도 링크가 걸려버리니 /가 붙은 경우만 제외하면 될 것같아 처리했습니다.