NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 문자열 치환 액션에서 점(.) 또는 물음표(?)를 삭제하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. [ 문자열 치환 ] 액션은 [ OCR 체크 ]와 기타 문자를 인식하는 액션과 같이 사용하는 일들이 많습니다. 이미지에서 숫자 또는 문자와 같은 텍스트를 추출할 때 OCR 체크 액션을 주로 사용하는데요. 이외에도 다양한 방법이 있지만, 사용법이 OCR 체크보다 다소 복잡한면이 없지않아 있습니다. 그렇다보니 대부분의 유저가 OCR 체크로 거래소의 가격이나 판매 가격 또는 주식, 선물과 같은 거래에서 OCR 체크 액션을 사용하고 있습니다. 자~ 그러면 1,000만원이라는 텍스트를 인식한다고 생각 해보세요. 1,000만원이 정상적으로 인식되면 괜찮겠지만, 가끔 1.000만원이라고 인식되는 경우가 있습니다. 그러면, 콤마로 한번 치환해서 삭제하고 닷을 한번 더 치환하면 1000만원이라는 값을 얻을 수 있습니다. 테스트를 위해 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    [ 변수 ]를 하나를 추가 했습니다. 1,0000만원이라는 값을 미리 넣어놓고, 연속해서 [ 문자열 치환 ] 을 하기 위함입니다. 변수 아이디는 "금액"이라고 설정하고, 기본 값으로 1,000만원을 입력하세요. 기본 값은 문자열 속성에 입력하시면 됩니다. 숫자와 문자가 같이 있기 때문에 문자열로 처리해야 합니다.

    7p2G0sN.png

     

     

    문자열 치환 액션을 2개 추가했습니다. 하나는 콤마를 다른 하나는 닷을 제거하기 위함입니다.

    BKmVmsI.png

     

     

    문자열 치환 액션 둘다 아래와 같이 변수 값을 가져옵니다.

    KG8gQAU.png

     

     

    문자열 치환 액션 둘다 변수 추가하기로 결과 값을 입력하세요.

    C9jxIiS.png

     

     

    첫번째 문자열 치환 액션의 치환될 문자열에 콤마를 입력하세요. 두번째 문자열 치환 액션의 치환될 문자열 속성에는 닷을 입력하세요.

    jYDHlEa.png

     

     

    정상적으로 처리가 되었는지 확인하기 위해 [ 메세지 박스 ] 액션을 스크립트 마지막에 추가 해줍니다.

    Wie9NT7.png

     

     

    변수 가져오기로 메세지 박스 내용에 표시하도록 해줍니다.

    h5yz0kd.png

     

     

    매크로를 실행 해볼까요? 우리가 예상한 결과는 메세지 박스가 표시되고, 내용으로 1000만원이라는 텍스트가 찍혀야 합니다. 하지만, 하단의 아웃풋 내용을 보면 뭔가 잘못되었다는걸 알 수 있습니다. 메세지 박스의 내용 속성은 필수 입력값인데 아무런 값도 없다고 알려줍니다. 그렇다면 문자열 치환 액션에서 뭔가 잘못되어서 변수의 값이 정상적으로 갱신되지 않았을 가능성이 큽니다.

    OZcIztB.png

     

     

    첫번째 문자열 치환 액션을 선택해보면 정상 처리가 된걸 알 수 있습니다.

    Fwib6hF.png

     

     

    두번째 문자열 치환 액션을 보면 결과 값이 없는걸 확인할 수 있습니다. 그렇다면 닷(점: .)을 처리하지 못했다는걸 알 수 있습니다.

    czQ6lEO.png

     

     

    문자열 치환 액션은 기본적으로 정규식을 따릅니다. 그래서, 정규식 문법에 대해 약간이나마 지식이 필요합니다. 정규식 사이트에 관련 내용을 찾아보기로 했습니다. 아래 사이트에 방문해서 닷(점)이 어떤 의미를 가지는지 확인 해봤습니다. 챕터 2의 메타 문자에 보면 온점(Period)에 대한 설명이 있네요. 지금까지 점은 닷(Dot)이라는 용어를 사용했는데요. 정규식 또는 일반적으로 온점(Period)를 사용합니다. 혼용해서 사용하더라도 같은거라고 이해하시면 될거 같습니다^^;

    [ 정규표현식 문법 가이드 ]

    aGZusR9.png

     

     

    온점에 대한 설명을 보면 줄바꿈 기호를 제외한 모든 문자와 매치된다고 되어 있습니다. 그렇다면 1000만원과 온점은 모두 매치가 되므로 빈 값으로 치환되었을겁니다. 아래 그림과 같이 온점을 치환할 때 치환할 문자가 공백이므로 모두 제거가 됩니다. 그렇다면 정규식의 메타 문자들을 제거하려면 어떻게 해야 할까요?

    RzW5UCq.png
     

     

    역슬래시(\)를 사용하면 뒤에 오는 예약된 문자(메타 문자)를 이스케이프할 수 있다고 설명하고 있습니다. 그러면, 온점 앞에 역슬레시를 붙여주면 정상 동작합니다.

    X0DJZNO.png

     

     

    아래 그림과 같이 두번째 문자열 치환 액션에서 치환될 문자 속성을 "\."와 같이 변경하세요.

    S24W93O.png

     

     

    매크로를 다시 실행하고, 결과를 확인 해보세요. 이번에는 정상적으로 메세지 박스가 표시될겁니다.

     

     

    문자열 치환을 사용할 때 기본적으로 시스템에 예약된 문자들은 역슬레시를 붙여야 합니다. "?!.+"와 같은 것들이 많이 사용되는 예약어입니다. 이외에도 더 있긴하지만 대략 그렇습니다. 위의 정규표현식 사이트에서 메타 문자들을 치환할 때 참고하시면 많은 도움이 될겁니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.