달나라 노트

Google Apps Script : split (separator 기준으로 문자 나누기, separate string to array, regular expression) 본문

Google Apps Script

Google Apps Script : split (separator 기준으로 문자 나누기, separate string to array, regular expression)

CosmosProject 2022. 11. 21. 22:36
728x90
반응형

 

 

 

split() method는 어떤 string(문자)에 적용하여 해당 문자를 특정 텍스트를 기준으로 나눠 array 로 만들어줍니다.

 

 

Syntax

string.split(separator)

 

string에 split() method를 적용하면 됩니다.

 

- separator

이것은 어떤 문자를 기준으로 텍스트를 나눌지를 주어주는 부분입니다.

특정 문자도 가능하며 regular expression을 이용하면 다수의 separator를 전달할 수 있습니다.

 

 

 

 

 

 

function myFunction() {
  var test_string = '2022-12-25';
  var list_string = test_string.split('-');
  Logger.log(list_string);
}



-- Result
[2022, 12, 25]

 

- var test_string = '2022-12-25';

2022-12-25라는 string이 있습니다.

이것은 날짜 format을 가지고있을 뿐 따옴표가 있기 때문에 string type입니다.

 

 

- var list_string = test_string.split('-');

test_string에 split() method를 적용했습니다.

그리고 separator로는 대쉬(-)를 전달했죠..

 

이 말은 2022-12-25라는 string을 - 기준으로 나누라는 의미입니다.

[2022, 12, 25]

따라서 결과가 위와 같죠.

 

 

 

 

 

 

 

function myFunction() {
  var test_string = '2022-12-25 19:15:33.992';
  var list_string = test_string.split(/[- :.]/);
  Logger.log(list_string);
}

 

다음은 2022-12-25 19:15:33.992 이렇게 적힌 시간 형태를 모두 숫자로 나눠보겠습니다.

그러면 필요한 separator가 대쉬(-), 공백( ), 콜론(:), 점(.)의 네 가지가 존재합니다.

 

이는 regular expression으로 해결 가능합니다.

 

- var list_string = test_string.split(/[-:. ]/);

string에 split() method를 적용하는 것은 동일합니다.

그러나 split() mthod의 parameter를 보면 regular expression이 적용되어있습니다.

 

regular expressoin은 /[ ~~ ]/ 이렇게 슬래쉬와 대괄호를 적고 그 사이에 기호들을 적습니다.

슬래쉬와 대괄호 표시는 이건 regular expression이다 라고 컴퓨터에게 지시하는 의미라고 생각하면됩니다.

 

/[- :.]/

 

regular expressoin 내부를 보면 총 4개가 적혀있습니다.

잘 보면 대쉬(-), 공백( ), 콜론(:), 점(.) 총 4개가 적혀있습니다.

 

이 말은 seperator가 - :. 한 덩이라는 의미가 아니라

대쉬(-), 공백( ), 콜론(:), 점(.) 총 4개 종류 각각을 의미한다고 보면 됩니다.

즉, regular expression 내부에 적힌 문자나 기호들은 그들을 다 합쳐서 보면 안되고 그들 각각을 의미한다고 이해해야 합니다.

 

따라서 2022-12-25 19:15:33.992 이 string에 있는 기호가 separator로 간주될테고,

지정한 기호들을 바탕으로 string이 나뉠겁니다.

 

[2022, 12, 25, 19, 15, 33, 992]

그래서 결과는 위와 같습니다.

 

 

 

 

 

 

728x90
반응형
Comments