[Script Code] 가져온 데이터 값을 Regex 정규식을 이용해 정돈하기
좋아요 : 0개
정민정
작성일 21/01/12 18:52



'이비소프트[주식회사] 대학교(209호) 홍길동{사원}'

위의 괄호 내 데이터를 제거하여 '이비소프트 대학교 홍길동' 로 정돈하는 형식의 예제입니다.

 

split함수를 사용할 수도 있겠지만, 좀 더 안정적으로 데이터 값을 얻기 위해 split함수 대신 정규식을 사용하겠습니다.


1.Script Code

 ->Data를 읽어오고, 정리하여 변수에 담을 스크립트입니다.


2. 정규식 Regex 를 사용하기 위해 

-> using System.Text.RegularExpressions; 를 추가해줍니다.




3. 이비소프트[주식회사] 대학교(209호) 홍길동{사원} 를 아래와 같이 출력하기 위해 

string 출력할 변수 =  Regex.Replace(string input, string pattern, string replacement); 


위의 형식을 맞추어 정돈된 데이터를 변수에 저장하겠습니다.

input : 수정할 문장 ex)이비소프트[주식회사] 대학교(209호) 홍길동{사원}

pattern : 바꾸고 싶은 부분을 regex 형식으로 표시 ex)주식회사,209호,사원 등의 괄호 안을 바꾸고 싶으니 이 부분을 표시해준다.

replacement :  바꿀 부분을 어느 것으로 replace할지 적어준다. ex)빈 공간으로 두고 싶으니 " " 입력


4.pattern 에 대하여

좀 더 자세히 설명하겠습니다.

예제의 []와 ()와 {}의 내용을 없애기 위해서 필요한 pattern은 


string pattern = @"(\(|\[|\{)([a-zA-Zㄱ-ㅎ가-힣0-9]*)(\)|\]|\})"; 입니다.


https://kthan.tistory.com/15

잘 설명된 참조사이트입니다.

pattern을 이제 끊어가며 차례로 설명해보겠습니다.

@                                           #이스케이프 시퀀스에서 빠져나오기 위해서 꼭 붙여주세요


(\(|\[|\{)                                #  (와 [와 {는 정규식 내에서 각자의 역할이 있기 때문에 문자로 인식하려면 앞에\를 붙여 표기해 주셔야 합니다. 다중 조건을 사용하기 위해 아래의 조건에 따라 이와 같이 표기합니다.


                                              # 정규식의 괄호는 그룹화 해서 한다는 의미입니다.



             

[a-zA-Zㄱ-ㅎ가-힣0-9]   # 영어소문자/영어대문자/한글/숫자 를 인식시킵니다. 


*                                           # 앞의 글자가 ex) [a-zA-Zㄱ-ㅎ가-힣0-9]  가  0 또는 , 혹은 그 이상 반복될 수 있음


 

                                           # Close the capturing group

(\)|\]|\})                             # )와 ]와 }는 정규식 내에서 각자의 역할이 있기 때문에 문자로 인식하려면 앞에\를 붙여 표기해 주셔야 합니다. 이 조건에 따라 다음과 같이 표기합니다.


(\(|\[|\{)([a-zA-Zㄱ-ㅎ가-힣0-9]*)(\)|\]|\}) 해석 -> () {} [] 안에 0 또는,  그 이상 반복되는 영어 한글, 혹은 숫자로 된 문자가 있습니다.


5.전체 스크립트

따라서 이비소프트[주식회사] 대학교(209호) 홍길동{사원}이비소프트 대학교 홍길동 으로 정리되는 전체 스크립트는 다음과 같습니다.


*예제 task 첨부해두었습니다.


이상 가져온 데이터 값을 Regex 정규식을 이용해 정돈하기 였습니다. 

감사합니다.

  • 카테고리
    Control Manager
  • 태그