Notice
Recent Posts
Recent Comments
Link
- Korea times
- 끌리면 오라...BGM 광고음악 라이브러리
- KartOO visual meta search engi…
- E-Book
- Channel9
- MSDN
- 여리의 작업실
- 유경상의 .NET 블로그
- window 쪼물딱 거리기
- 블루 홈(소현이 누님)
- IT 관련 전반 내용(정환이네)
- 비너스의 정보 공유(유틸리티들)
- 형기의 자료공간(디지털ERA에서 콘텐츠ERA로)
- EzineArticles (여러 분야의 글들이 올라옴)
- Relationship을 보여주는 라이브러리
- OpenRCE
- 젠틀의 블로그(무선 통신의 모든것)
- 헐랭이와 IT보안
- 워니. 추억ㅇㅔ ㅂㅣ추ㅇㅓ.
- Computer Forensics
- 토익 광장(YBM)
- Korea Times 이용하기
- Larkware Software
- TCP/UDP
- Black Hat
- DEF CON
- Slashdot
- ReallyUsefulEbooks.com Update
- 실리콘밸리 뉴스
- Application Development Trends
- Visual Studio Hacks
- MIT OCW
- Redmond Developer News
- SecurityFocus
- Microsoft Window Hacking Porta…
- Darknet - Don't Learn to Hack …
- Windows Tips, Tricks and Hacks
- Hack In the Box
- (IN)SECURE Magazine
- SuperSite Windows Vista
- Government Security
- Life is Still Talking (Good)
- PHRACK
- Found+Read(resource for startu…
- Jonathan Boutelle
- Venture Hacks
- 스마트플레이스
- All about Intellipedia
- Undocumented Windows 2000 Secr…
- HexBlog (Decompiler)
- TED (Ideas worth spreading)
- Crash Dump Analysis and Debugg…
- Rootkit
- DDK Developers(MS)
- 미친 감자의 블로그
- The Art of Assembly Language
- Chpie (키보드 후킹)
- Drivers Online
- (음악) Delicate SONG
- Reverse Engineering Community
- Software Best Practices
- Sara Ford's WebLog
- Cheat Happens
- Debugging,Unpacking,Assembling…
- 윤석찬님 블로그
- OK 괜찮아 다 잘 될거야
- RingBlog
- Art Life :: 하늘소
- IT's Paradise
- John Robbins!
- Wintellect
- Hacked Gadgets
- 소프트웨어 이야기
- Ryan Naraine's Zero Day
- VULN
- Stay Secure
- EBS 영어 공부(블루워터)
- 101BLoG : "Bright Size Life" o…
- Hacker Challenge
- Hackers Center
- White Hat, Chicago Con
- Ethical Hacker Network
- ChaseNet (Security)
- TechTarget
- Entrepreneur
- Infopackets
- Popular Science
- Dark Reading - The Business of…
- How Stuff Works
- codeDriver - Crack (역공학)
- Gadget (Windows)
- Serious Code
- Iguacu Blog(블루문)
- SecurityProof
- Power of Community(Hacker)
- Crack ?
- Security Freak
- Data Network Resource
- FoundStone - Security Consulti…
- Google Online Security Blog
- (BOOK) Cool DogBooks
- SachaBarber (좋은 개발자)
- System Software Incorporation
- 스카이 벤처
- NewsTorrent
- 글로벌 IT 네트워크
- Ethical Hacking and Infosec
- Realms of Hacking tricks
- CodeBreakers Journal
- Anti Rootkit Blog
- The Reverse Code Engineering C…
- Anti-Debug Tools
- Reverse Code Engineering Video…
- Damn Vulnerable linux
- Security Problems
- French Reverse Engineering Tea…
- Monac
- Open Source Vulnerability Data…
- Viruschaser 검사(바이러스)
- Windows Tips
- 보안 대처 연습
- [Download] Kartz CD
- [Download] FlMS Download
- [Download] DDL2
- 중국 해킹 사이트(안전중국)
- 바이러스 분석
- Javascript 전문가
- Virus Alert Zone (바이러스 분석)
- Computer World
- 문스랩닷컴(보안)
- Unpack China
- Black Storm Reverse Engineerin…
- 역공학 Reverser
- 문화 망명지 - 시, 소설
- WPF MVP
- Research Channel
- The Problem Solver - C# MVP
- Reversing - 리버스 엔지니어링
- Nigel Spencer's Blog (.NET)
- Kirill Osenkov (.NET C# IDE Te…
- H33T (BitTorrnet 검색 사이트)
- ITL (해킹, 보안)
- ITL (Invisible Things Lab) Blo…
- ebook, pdf, chm
- 주식 - 멘토클리닉
- CherryLove - 바이러스, 백신, 악성코드
- PMP
- 영원한 해커, hacker
- 리버싱, PE
- 신호철 - dsphome
- TechEd 2009
- SHOUT
- [도서] 오디오북
- [도서] 전자책
- [도서] 국내도서요약
- [도서] 해외도서요약
- TopCorder - 프로그래밍 연습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- visual studio 2010
- 비주얼 스튜디오
- 역공학
- security
- Windows 7
- 책
- 구글
- debugging
- 닷넷
- VSTS
- .net framework 4
- hacking
- Visual Studio
- 마이크로소프트
- Windows
- 비주얼스튜디오
- MVP
- .net
- 디버그랩
- 디버깅
- Microsoft
- 해킹
- 보안
- VSTS 2010
- WPF
- C#
- english
- .NET Framework
Archives
- Today
- Total
NaggingMachine
{HowToCSharp} 트위터 메시지 정규표현식으로 파싱하기 본문
이 로직은 TwitterTimes 개발하면서 트위터 메시지 파싱할때 사용한 루틴입니다. 트위터 메시지는 하이퍼링크와 골뱅이(@)로 시작하는 사용자 아이디, 그리고 샵(#)으로 시작하는 검색어(그룹?)가 함께 혼용될 수 있으므로 전체 메시지에서 각 부분을 적절하게 나누어줄 필요가 있죠.
트위터 메시지 예제
혹시나 트위터 관련 소프트웨어 개발하실 때 필요하신 분들이 있을까 싶어서 공유합니다. 하이퍼링크 파싱은 어느 블로그에서 가져와서 개선한건데 기억이 안나네요. 보통은 제가 다른 사이트에서 참고하면 주석에 추가해놓는데 말입니다...^^;;
혹시나 문제점이 발견된다면 댓글달아주세요~ ^^
# .NET Framework 3.5 기반의 C# 소스 코드입니다~
/// message로 넘어온 데이터는 하이퍼링크와 @, #이 동시에 포함되어 있기 때문에 /// 이를 잘 나누기 위한 방법이 필요하다. 여기서는 C#에서 기본제공하는 /// 정규표현식을 활용하기 위해 패턴문자열을 구성하였다. /// string pattern = string.Empty; pattern += @"((http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?)"; // 도메인 + 포트 pattern += @"([\.~_0-9a-z-]+\/?)*"; // 서브 루트 또는 서브 디렉터리 pattern += @"(\S+\.[_0-9a-z]+\??)?"; // 파일과 확장자 문자열 pattern += @"([_0-9a-z#&=-?]+)*"; // 매개변수 pattern += @"|@\w*[0-9a-zA-Z_]"; // @로 시작하는 아이디 pattern += @"|#\w*[0-9a-zA-Z_]"; // #으로 시작하는 검색어 /// 패턴 문자열을 이용하여 문자열을 분석한다. /// var r = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled); var matches = new List(); for (var m = r.Match(message); m.Success; m = m.NextMatch()) { if (string.IsNullOrEmpty(m.Groups[0].Value)) continue; matches.Add(m.Groups[0]); } /// match된 결과를 오름차순으로 정렬한다. /// 이 과정이 반드시 필요한 이유는 패턴매칭을 통해서 구한 각각의 패턴들은 /// 모두 문자열 상에서의 시작위치와 길이 정보를 갖게 되는데 /// 실제로 각 문자열을 분석해서 그에 맞게 Run또는 Hyperlink 객체를 생성하기 위해서는 /// 문자열의 앞 부분부터 구간을 끊어나가면서 진행해야 하므로 /// 모든 매칭은 반드시 순서대로 정렬이 되어 있어야 한다. /// var groupMatches = matches.OrderBy(match => match.Index);
'Visual Studio' 카테고리의 다른 글
테스트 객체 자동 생성기, NBuilder (2) | 2009.10.06 |
---|---|
{HowToCSharp} 텍스트 파일의 앞 부분을 건너뛴다음 저장하기 (0) | 2009.10.05 |
Windows Mobile UI 개선하기 (0) | 2009.09.14 |
아직도 LINQ를 모르신다면, (0) | 2009.08.24 |
wpf (0) | 2009.08.10 |