Tasker를 사용하면서 정규식을 사용할 일이 종종 생긴다.
특히 Wifi 관련된 정보를 얻을 때 정규식이 매우 유용하다.
위와 같이 %WIFII로부터 wifi정보를 얻었다.
그림에서 보면 알겠지만 %WIFII를 %wifiinfo라는 로컬 변수에 넣었다.
SSID 추출하기
이 중에서 ssid에 해당되는 olleh GiGA WiFi만 추출하고 싶다면 아래와 같이 정규식을 작성한다.
%wifiinfo에서 ssid는 따옴표로 감싸지기 때문에 따옴표로 시작하고 따옴표로 끝나는 문구를 찾되 따옴표는 제외하는 정규식 문장을 작성하면 된다.
결과는 %SSID에 매칭된 문구들이 들어가게 된다. 여기서는 olleh GiGA WiFi가 들어가게 된다.
다만 주의할 점은 매칭 결과는 항상 배열 형태이기 때문에 실제로 사용하려면 %SSID1을 사용해야 내가 원하는 olleh GiGA WiFi를 추출할 수 있다.
사실 처음에 이 정규식 문구를 우연히 획득하게 되었는데 도대체 이해할 수 없었다.
어지간한 정규식 설명 사이트에서는 (?<=ABC)에 관련된 설명이 없었기 때문이다. 몇 시간을 구글링하여 간신히 찾아냈는데 정규식의 최고급 기술(?)이라고 한다. ㅋ
정규식 용어로는 lookahead와 lookbehind라고 하는데 기능은 같지만 위치에 따라 구분되는 기능이다. (둘을 합쳐 lookaround라고 한단다)
여기서 해당 정규식의 용법을 쉽게 이해할 수 있다.
Signal 추출하기
signal은 패턴이 명확해서 좀 간단하다.
%SSID와 마찬가지로 매칭된 결과 역시 %wifisig에 들어가는데 이 변수도 배열형태이므로 %wifisig1을 사용해야 원하는 값을 얻을 수 있다.