테스트 사이트 - 개발 중인 베타 버전입니다

정규식 질문입니다. 채택완료

신비로움 9년 전 조회 7,151

태그 구현을 실험중인데요.

 

정규식 구문은 이렇습니다.

 

$re = '/(#[0-9a-zA-Z가-힣ㄱ-ㅎ]*)/ui';

 

제가 사용한 정규식은 #php스쿨#ldd#사람 이런 문자열이 있다면 #php스쿨 / #ldd / #사람 이런식으로 나뉘는데요. 여기에 추가적으로 공백(띄어쓰기)을 하지 않으면 문장 통째로 가져오고 싶습니다. 예를 들어 #php스쿨 #ldd#사람 이런 문자열이 있다면 #php스쿨 / #ldd#사람 / 이렇게 두개로요 ㅎ 첫시작은 '#' 끝은 공백으로 마무리 지으면 될꺼 같은데 중간에 특문도 태그안에 삽입되었을때 문제가 없었으면 합니다. #이 겹치는 일이 많을꺼 같거든요. 도움 부탁드리겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
리자
리자 Expert
9년 전

</p><p><?php
$str = '#php스쿨   #ldd#사람';</p><p>// 공백이 1개를 초과하는 경우 1개로 만든다.
$str = preg_replace('/\s+/', ' ', $str);

$arr = array_map('trim', explode(' ', $str));
echo implode('/', $arr);</p><p>

 

일단 특문은 제외하고 만들어 봤는데 이게 맞는지 모르겠습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

z
9년 전

(#[\S]*) 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인