본문 바로가기
개발

어플리케이션 DB 태그 "@", "#" 만들기

by dev_caleb 2022. 1. 24.
728x90

인스타나 페이스북 요즘에는 카카오톡에서도 태그를 많이들 활용하고 게시물에서는 당연히 있어야하는 기능으로 생각 되어진다. 

 

그런데 생각보다 해당 기능과 관련 된 문서가 정리된 것이 잘 없어서 frontend, backend, fullstack 개발자에게 많은 고통을 주는 것 같다(저요..ㅠㅠ)

그래서 이번에 맨땅에 헤딩해보면서 만들어보려고 한다. ! 화이팅!! (나는 flutter를 사용하므로 dart라는 언어로 개발하고자 하였다.)

 

 

1. 태그 String 추출

String 에서 태그를 추출부터 해야한다. 

그러면 추출하는 함수는 무엇인가 #댓글 #추출 -> 이것은 모두 #과  띄움(space bar)사이에 있는 글이 태그로 나타나는 것이라고 생각이 되어서 그러면 #과 space바 사이에 있는 string 을 가져오는 함수를 찾아보았다.

 

"태그  string 추출"로 구글에 검색해서 우선 찾아보았다.

원하는 것이 안나와서 "extract tag string"로 유튜브에서도 찾아보았다.

찾다보니 class 중에 pattern과 matcher를 사용해야한다는 것을 깨달았다.

http://daplus.net/java-정규식을-사용하여-하위-문자열을-추출하는-방법/

 

[java] 정규식을 사용하여 하위 문자열을 추출하는 방법 - 리뷰나라

두 개의 작은 따옴표가있는 문자열이 있습니다 '. 작은 따옴표 사이에는 내가 원하는 데이터가 있습니다. 다음 텍스트에서 “원하는 데이터”를 추출하기 위해 정규식을 작성하려면 어떻게해야

daplus.net

 

나는 사실 정규식에 대해서 아예 모르다보니.. youtube 강의를 시청했다.

 

https://www.youtube.com/watch?v=1BTGSVhNDu8 

사실 위의 동영상을 봐도 잘 모르겠어서

 

 

 

 

이것저것 자료를 진짜 많이 찾아봤는데 아래의 코드로 하면 찾아지긴한다..

동작원리는 정확하게 잘 모르겠다. 

Dart 언어 정규식

void main() {
  var mystring = '안녕하세요! @행복 님 정말 오랜만입니다.ㅎㅎ @기쁨 님도 오랜만이에요ㅋㅋㅋ';

  Pattern nickNamePattern = "(@[\d|A-Z|a-z|ㄱ-ㅎ|ㅏ-ㅣ|가-힣]*)";
  RegExp nickNameRegex = RegExp(nickNamePattern);
  nickNameRegex.allMatches(mystring).forEach((element) {
    print(element.group(0).substring(1));
  });
}

substring(1) 을 없애면 @행복, @기쁨으로 나온다 ㅎㅎ

 

728x90

'개발' 카테고리의 다른 글

정규식 연습장  (0) 2022.03.26
Create Gif file easily  (0) 2022.01.30
코딩 알고리즘 연습 사이트  (0) 2022.01.26
혼자 개발할 때 좋은 점  (0) 2022.01.23
Random user Api  (0) 2022.01.21