http://regexr.com/
Summary
문자검색
줄바꿈 \r 또는 \n 또는 \r\n #운영체제에 따라 바뀜
숫자 \d 또는 [0-9]
다중선택 \d{10} #숫자가 10자리인 것
또는(or) (A|B) #A 또는 B
공백 \s
범위선택
특정 라인까지 ((.*\n){5}) #5번째줄까지 선택
시작포함 특정시점 앞까지 STARTHERE([.\s\S]*?)(?=BEFOREHERE) #STARTHERE포함해서 BEFOREHERE 이전까지 줄바꿈 모두 포함
(.+?)(?=BEFOREHERE)
줄바꿈 제외 bestofbest 와 </td> 사이에 줄바꿈을 제외한 모든 문자,
<a href=\"\/board\/view.php\?table=bestofbest(.+)<\/td>
줄바꿈 포함 bestofbest 와 </td> 사이에 줄바꿈을 제외한 모든 문자,
<a href=\"\/board\/view.php\?table=bestofbest((.|\n)*)<\/tr>
<a href=\"\/board\/view.php\?table=bestofbest([\s\S]*)<\/tr>
([\s\S]*) 마지막항목까지 검색
\s(\w+)$ 마지막 텍스트 선택
(.*?)(?=UPTOHERE) uptohere 이전까지 선택
(x|y) x 또는 y 에 만족할시에
표현식 | 의미 |
^x | 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다. |
x$ | 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다. |
.x | 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다. |
x+ | 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다. |
x? | 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다. |
x* | 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다. |
x|y | or 를 표현하며 x 또는 y 문자가 존재함을 의미한다. |
(x) | 그룹을 표현하며 x 를 그룹으로 처리함을 의미한다. |
(x)(y) | 그룹들의 집합을 표현하며 앞에서 부터 순서대로 번호를 부여하여 관리하고 x, y 는 각 그룹의 데이터로 관리된다. |
(x)(?:y) | 그룹들의 집합에 대한 예외를 표현하며 그룹 집합으로 관리되지 않음을 의미한다. |
x{n} | 반복을 표현하며 x 문자가 n번 반복됨을 의미한다. |
x{n,} | 반복을 표현하며 x 문자가 n번 이상 반복됨을 의미한다. |
x{n,m} | 반복을 표현하며 x 문자가 최소 n번 이상 최대 m 번 이하로 반복됨을 의미한다. |
표현식 | 의미 |
[xy] | 문자 선택을 표현하며 x 와 y 중에 하나를 의미한다. |
[^xy] | not 을 표현하며 x 및 y 를 제외한 문자를 의미한다. |
[x-z] | range를 표현하며 x ~ z 사이의 문자를 의미한다. |
\^ | escape 를 표현하며 ^ 를 문자로 사용함을 의미한다. |
\b | word boundary를 표현하며 문자와 공백사이의 문자를 의미한다. |
\B | non word boundary를 표현하며 문자와 공백사이가 아닌 문자를 의미한다. |
\d | digit 를 표현하며 숫자를 의미한다. |
\D | non digit 를 표현하며 숫자가 아닌 것을 의미한다. |
\s | space 를 표현하며 공백 문자를 의미한다. |
\S | non space를 표현하며 공백 문자가 아닌 것을 의미한다. |
\t | tab 을 표현하며 탭 문자를 의미한다. |
\v | vertical tab을 표현하며 수직 탭(?) 문자를 의미한다. |
\w | word 를 표현하며 알파벳 + 숫자 + _ 중의 한 문자임을 의미한다. |
\W | non word를 표현하며 알파벳 + 숫자 + _ 가 아닌 문자를 의미한다. |
출처: http://hamait.tistory.com/342 [HAMA 블로그]
예제
\n[0-9]\s([.\s\S]*?)((?=\n\d{1}\s)|(?=\_\_\_\_))
줄바꾸고첫번째는 숫자고, 공백 후에 줄바꿈 포함으로 있다가 줄바꿈 공백 이전 또는 ___ 이전까지 포함
[+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*)(?:[eE][+-]?\d+)?
정수든 소수든 모든 숫자를 선택
$cng = '((Bill\s)([.\s\S]*?)(?=\_{95}))';
$remove1 = preg_replace($cng,"",$list);
파이썬에서 \ 문자 포함여부
포함
\"
\/
미포함
<
>
<([^>]+)> "< >" 안의 내용을 선택 : html 코드를 없앨때 유용
\s 줄바꿈
^ 패턴의 시작
$ 패턴의 끝
\1 기존의 문자 입력
\n 줄바꿈
include 'class.snoopy.php';
$snoopy=new snoopy;
$snoopy->fetch("http://moonseller.net");
$txt=$snoopy->results;
$rex="/[0-9]{4}/";
preg_match_all($rex,$txt,$o);
print_r($o);
I found a short script for counting and displaying ONLY links from a string :
preg_match_all('/<a href="(.*)">/',$post_content,$a);
링크부분만 가져오기
$rex="'<a href=\"(.+)<\/a>'i";
전화번호만 뽑아내기
$rex="/[0-9]{3}-[0-9]{4}-[0-9]{4}/"
이메일만 뽑아내기
요즘엔 이런식으로 이메일 수집을 못하게 이미지로 처리하는 경우가 많다.
$rex="/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/";
특정태그로 둘러 쌓인 내용만 뽑아내기
이 녀석이 핵심이다. 보통 영어로만 된 경우에는 [A-Za-z]* 라고 하면 되는데, 한글일 경우 참으로 애매해진다. 그럴때 아래와 같은 꽁수(?)를 쓴다.
$rex="/\<span id=\"moonseller\"\>[>^]\<\/span\>/";
이정도만 하면 왠만한 사이트들은 다 긁어 올수 있다.
// iframe 제거
$str = preg_replace("!<iframe(.*?)</iframe>!is","",$str);
// script 제거
$str = preg_replace("!<script(.*?)</script>!is","",$str);
// meta 제거
$str = preg_replace("!<meta(.*?)>!is","",$str);
// style 태그 제거
$str = preg_replace("!<style(.*?)</style>!is","",$str);
// 를 공백으로 변환
$str = str_replace(" "," ",$str);
// 연속된 공백 1개로
$str = preg_replace("/s{2,}/"," ",$str);
// 태그안에 style= 속성 제거
$str = preg_replace("/ style=([^\"\'+) /","",$str); // style-border:0... 따옴표가 없을때
$str = preg_replace("/ style=(\"\')?(^\"\'+)(\"\')?/",""$str); // style="border:0..." 따옴표가 있을때
// 태그안의 width= / height= 속성제거
$str = preg_replace("/ width=(\"\')?\d+(\"\')?/","",$str);
$str = preg_replace("/ height=(\"\')?\d+(\"\')?/","",$str);
// img 태그 추출 src 추출
preg_match("/ <img[^>*src=[\"']?([^>\"']+)[\"']?[^>*>/i",$str,$result);
preg_match_all("/ <img[^>*src=[\"']?([^>\"']+)[\"']?[^>*>/i",$str,$result);
'Computer > Programing' 카테고리의 다른 글
텍스트 분석 후 특정파일만 출력 (0) | 2019.02.07 |
---|---|
Snoopy 이용법해서 파싱 방법 (0) | 2019.02.07 |
텔레그램 봇 TelegramBotPHP 활용 ( 문자 및 사진보내기 ) (0) | 2019.02.07 |
Mysql 입력 출력 (0) | 2019.02.07 |
Parsing - PHP (0) | 2019.02.07 |
CSS 사용법 / 차이 (0) | 2019.02.07 |
접속한 사용자의 IP 주소 기록 php (0) | 2019.02.07 |
스마트폰으로 접속시 특정 사이트로 이동 소스 Javascript (0) | 2019.02.07 |