Search results The results is only based on Apollo89.com
2 posts are related to '정규표현식'
  1. 2009/05/08 php와 정규 표현식을 이용해서 특정 디렉토리 안의 특정 파일에서 한글만 뽑기
  2. 2008/06/27 한글패턴 검색(정규표현식)

회사 홈페이지의 영문화를 진행중이다..

영문화를 하는데 있어 분량파악을 위해 한글 부분만 뽑아내야 하는데...

이 일을 수백개가 넘는 파일 하나씩 열어 한글 부분만 copy & paste 노가다로 하자니 미친짓 같고..

좀편하게 하려고 간단하게 스크립트를 짜보았다.
(이런 간단한 스크립트는 사실 php가 편하다^^;)

우선 내가 원하는 특정파일을 찾아야 한다..

이건 find 명령을 이용하면 쉽게 할수 있다..

]$ find path -name '*.js'

위와 같이 하면 확장자가 js인 파일들을 찾을 수 있다.

그리고 한글 부분만 추출하는 정규식은 아래와 같다. (UTF-8 코딩의 경우)

$pattern = '![^\x{0020}\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]+!u';

그러면, 추출해야 할 파일들의 리스트를  find 명령으로 뽑아서 loop를 돌면서 file을 읽어 정규식을 사용해서 한글 부분만 뽑아내면 된다!!

그래서 아래와 같이 코딩을 하고 추출한 한글이 어느 파일의 몇번째 라인인지까지 출력해서 보여주도록 해보았다.

<?
$path = "/your/path/";
exec("find $path -name '*.js'", $files);

for($i=0; $i<count($files); $i++) {        $lines = file($files[$i]);

        foreach ($lines as $line_num => $line) {             $pattern = '![^\x{0020}\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]+!u';             $result = preg_replace('/\s\s+/', ' ', preg_replace($pattern,'',$line));             if($result == " ") {                 // 공백은 한글이 없는 라인.             } else if($result == "") {                 // 원래 공백인 라인             } else {               // 한글이 있는 라인                 echo "[".$files[$i]."]  Line #{$line_num}   :   " . $result . "<br />\n";             }         } } ?>

결과는 아래와 같이 나온다^^

...
[/your/path/script.js] Line #57 : 검색어를 입력해주세요
[/your/path/script.js] Line #87 : 데이터가 없습니다
[/your/path/aa/aa1.js] Line #42 : 특수문자는 사용하실 수 없습니다
[/your/path/aa/aa2.js] Line #128 : 중복체크를 해 주십시오
[/your/path/bb/bb.js] Line #91 : 데이터를 선택하십시오
[/your/path/bb/bbb/bbb.js] Line #230 : 삭제 하시겠습니까
...


참고 URL : http://bequietzero.springnote.com/pages/2716706

크리에이티브 커먼즈 라이센스
Creative Commons License
2009/05/08 21:43 2009/05/08 21:43


한글패턴 검색(정규표현식) posted on 2008/06/27 14:55, filed under Develop
- java
한글 완성형. [\uAC00-\uD7A3]

- php
한글과 영문,숫자만 입력 : if(!ereg("^[\xa1-\xfe0-9a-zA-Z]+$",$name)){

- js
 function chkHan($str)
{
# 특정 문자가 한글의 범위내(0xA1A1 - 0xFEFE)에 있는지 검사
$strCnt=0;
while( strlen($str) >= $strCnt)
{
$char = ord($str[$strCnt]);
if($char >= 0xa1 && $char <= 0xfe) return true;
$strCnt++;
}
}

$str 이 한글을 포함하는지 검사하는 함수입니다.
쓰는법 =>
$chk = chkHan($val); // $val 은 변수값이 되겠죠~
if($chk == true)
{
//한글이 포함되었을때 처리~~
}



크리에이티브 커먼즈 라이센스
Creative Commons License
2008/06/27 14:55 2008/06/27 14:55


Total: 213287 (Today: 78, Yesterday: 81)

RSS
읽고 있는 책