테스트 사이트 - 개발 중인 베타 버전입니다

[정규식] 재미난 정규식 9 - 심화4

· 11년 전 · 2557 · 6
심화 4 단계 입니다.
지금까지 찾아 내는 것을 했다면 이 번은 다릅니다.
정규식으로 가져와 변환을 해야 하지요. (생각만 해도 끔찍 하지요?)

자 ~ 그럼 점선 안의 내용을 정상적인 메일주소로 변환(replace) 시키면 됩니다. 

-----------------------------------------------
abs8230LSDKF @ sir.co.kr

some.email at gmail dot com

asdf-FDSA at  ghjkl .  net

thomas at yahoo .de

josh@awesomecompanyname dot com

mona.lisa [@] domain [dot] com

stephen.spielberg [@] domain [.] com
-----------------------------------------------

도전하는 그대가 아름답다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

저는 이번 문제 쉴게요. ㅎㅎ
$subs = array(
'/\s{3,}/' => '<br />',
'/[\s\[\]]/' => '',
'/at/' => '@',
'/dot/' => '.'
);
echo preg_replace(array_keys($subs), array_values($subs), $str);
깔끔하게 잘 되었네요 ^^
추가됨

preg_replace("/^([-\w\d\.]+?)(?:\s+at\s+|\s*@\s*|\s*(?:[\[\]@]){3}\s*)([-\w\d\.]*?)\s*(?:dot|\.|(?:[\[\]dot\.]){3,5})\s*(\w+)$/m", "$1@$2.$3", $str);
추가
preg_replace("/([\w\.]+)\s*(?:@|at|\[@\])\s*(\w+)\s*(?:\.|dot|\[dot\]|\[\.\])\s*([\w\.]*)/", "$1@$2.$3", $str);

정규식문제 재미나게 잘 봤습니다. 유익한 정보네요
추가
preg_replace("/(\S)\s?(?:at|\[?@\]?)\s*(\w+)\s?(?:\[?dot|\[?\.)[\]|\s]*(\S)/", "$1@$2.$3", $str);
오랜만에 마음 맞는 분을 만난 것 같군요.

게시글 목록

번호 제목
5340
5327
5323
5308
5303
5302
5299
5296
5284
5267
5248
5231
5193
5179
5164
5130
5120
5102
5055
4999
4998
4990
4947
4926
4898
4884
4864
4863
4850
4824