2008년 12월 4일 목요일

[패턴] 한글이 포함된 string의 패턴 매칭

이게 아닌데 이게 아닌데 아무리 해봐도 의도한 대로 결과가 나와 주지 않는다.
한글을 사용하기 위해선 encoding 모듈을 사용해야 하는 것을..쯧쯔..하루 종일 뭔 삽질인지
날도 추운데..

use encoding 'euc-kr'; # 이 놈이 모든것을 해결해 줌
$content = "_OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)');_OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)');_OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)');";


while ($content =~ /_OBJ_GRID.setTextOnly\('([\w]+)', ([\w]+), '([\w\(\)\-]+)'\);/g) {
    print "Word is $1, $2 , $3 ends at position ", pos $content, "\n";
}



결과

================
 _OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)');_OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)')
;_OBJ_GRID.setTextOnly('ordNm', maxRow, '장은정(cchang700)');
===================
Word is ordNm, maxRow , 장은정(cchang700) ends at position 57
Word is ordNm, maxRow , 장은정(cchang700) ends at position 114
Word is ordNm, maxRow , 장은정(cchang700) ends at position 171

알고나면 뭐든 쉬운 것을 쯧쯔....

댓글 2개:

  1. use encoding 프래그마는 제작자도 설계가 잘못되었다고 인정하며 deprecated 시키고 싶다고 했습니다. 따라서 안쓰는게 좋습니다. http://aero.springnote.com/pages/1053508 를 읽어보시길 추천드립니다.

    답글삭제
  2. @aero - 2008/12/05 19:44
    읽어봐도 너무 복잡해서 잘 이해가 안됩니다. ㅠㅠ

    틈나면 찬찬히 읽어봐야겠습니다.

    답글삭제