일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 단축키
- 점점변하는값
- unalias
- 월별 카운트
- Avr
- Get
- php
- android studio
- 파일존재
- 하이퍼 터미널
- mathemetica
- halliday
- 강좌
- Join
- PORTG
- 현재언어
- 0x
- function
- cocos2d-x
- Call
- C++
- Java
- application.mk
- solution
- Post
- selectc
- is_array
- SQL
- array
- mysql
- Today
- Total
목록컴퓨터 이야기/정규식 (3)
코딩도사의 코드정리
Non Greedy repeats 기본적으로 정규식은 greedy 방법을 사용한다. greedy 방법은 가능한한 최대의 입력을 취급한다는 이야기다. non-greedy 방법은 가능한한 최소의 입력을 받는다. abcdaXbcdabcdX 와 같은 문자가 있으면 (a.+X).* 로 매치했을 때 abcdaXbcdabcdX 가 매치되지만 아래와 같은 (a.+?X).* 같은 표현으로 매치하면 abcdaX 가 매치된다. *? +? {n,}? {n,m}? 이까지는 이해가 가는데 ?? 라는 표현도 있음. 예를 들어 표현하면 a??c 를 했을 때 abc444ac 라는게 있다면 abc 를 찾는게 아니고 ac 를 찾음 가능한한 짧은걸 찾음. Back references std::string s("apple banana"); ..
펄 정규식 문법 다음과 문자셋을 제외하고는 전부 매치 할 수 있다. .[{()\*+?|^$ 문자를 직접적으로 표현할려면 \ 을 붙여줘야 됨. 예) \. \[ \? \^ 와일드 카드 . 하나의 . 으로 표현될 수 있으며 이것은 널문자나 줄바꿈 문자를 제외하고 모든 문자를 매치함. 줄의 시작과 끝 ^$ 줄의 시작하는 곳을 찾으려면 ^ 줄이 끝나는 곳을 찾으려면 $ 표현 묶기 묶기 시작할 곳에서 '(' 그리고 닫는 곳에서 ')' 만약 apple 이란 단어가 여러개 붙어있는 곳을 찾고 싶다면? apple+ 하면 될까? apple+ 이란 표현은 apple 이란 문자 전체가 반복되는것을 매치하는게 아니고 applee, appleee 와 같은 문자와 매치된다. 만약 우리가 원하는 답을 얻고 싶으면 (apple)+ 이..
정규 표현식(正規表現式, Regular expression에서 줄여서 Regexp 또는 Regex)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히 펄과 Tcl은 언어 자체에 강력한 정규 표현식 구현을 내장하고 있다. 정규 표현식은 컴퓨터 과학의 정규 언어로부터 유래하였으나 구현체에 따라서 정규 언어보다 더 넓은 언어를 표현할 수 있는 경우도 있으며, 심지어 정규 표현식 자체의 문법도 여러 가지 존재하고 있다. 이 중 표준화된 것으로는 POSIX의 확장 정규 표현식이 있으며, 표준화되지는 않았지만 펄의 정규 표현식과 그 대체 구현인 PCRE도 널리 사용된다. 정규식의 종류..