'Language > PHP' 카테고리의 다른 글
정규표현식 테스트 필요할 때 보조 프로그램 (0) | 2010.01.19 |
---|---|
PHP 정규표현식 (0) | 2010.01.18 |
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버 (2) | 2009.12.28 |
XAMPP 설치 가이드 (0) | 2009.12.28 |
xampp (0) | 2009.12.28 |
정규표현식 테스트 필요할 때 보조 프로그램 (0) | 2010.01.19 |
---|---|
PHP 정규표현식 (0) | 2010.01.18 |
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버 (2) | 2009.12.28 |
XAMPP 설치 가이드 (0) | 2009.12.28 |
xampp (0) | 2009.12.28 |
출처: 이승혁,「PHP웹프로그래밍가이드」(서울:마이트Press) 2000, pp. 178-182.
문자열 패턴을 표현하기 위해 정규 표현식 함수와 함께 사용되는 특수 문자들이 있다. 정규 표현식에 사용되는 이 특수 문자들의 사용법을 먼저 알아보도록 하자
정규 표현식에서 패턴을 표현하기 위해 사용하는 특수 문자와 규칙은 다음과 같다.
'.'은 어떤 문자이건 간에 임의의 한 글자를 나타낸다. 예를 들면, 패턴 a.c는 어느 한 문자의 앞 문자가 a이고 뒷 문자는 c인 모든 문자열을 포함한다. 따라서 aac나 abc, acc는 이 패턴에 일치되는 문자열이다. 그러나 .은 반드시 임의의 한 글자만을 대신하기 때문에 a로 시작해 c로 끝나는 문자열 중 두 글자뿐인 ac나 abbc는 이 패턴에 포함되지 않는다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
s.e | s와 e사이에 임의의 한 글자를 갖는 문자열과 일치한다. | sae, sbe, sce, sde, … |
.ce | ce 앞에 임의의 한 글자를 갖는 문자열과 일치한다. | ace, kce, fce, … |
'*'는 바로 앞의 문자를 의미하며 그 문자가 없거나 하나 이상임을 나타낸다. 위의 '.'이 그 자체로 임의의 한 글자만을 의미하는 데 반해 '*'는 바로 복수 개의 문자를 나타낼 수 있다. 대신 '*' 앞에는 반드시 문자가 하나 이상 있어야 한다. 만일 "*e"와 같이 '*' 앞에 문자가 없으면 잘못된 패턴으로 인식해 에러가 발생한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
s*e | e 앞에 s가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. | e, se, sse, ssse, … |
abc* | ab 다음에 c가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. | ab, abc, abcc, abccc, … |
h*im | im 앞에 h가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. | im, him, hhim, hhhim, … |
'+'는 바로 앞의 문자를 의미하여 그 문자가 하나 이상임을 나타낸다. '*'와 마찬가지로 앞에 한 문자가 있어야 하며 이 문자가 최소 하나 이상 존재하는 모든 문자열을 포함한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
s+e | 문자 e앞에 s가 최소한 하나 이상 존재하는 모든 문자열을 나타낸다. | se, sse, ssse, sssse, settle, … |
'?'는 바로 앞의 문자가 없거나 혹은 있음을 나타낸다. 예를 들면, s?e는 '?' 앞의 문자 s가 없거나 하나 존재하는 문자열 e나 se를 포함한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
th?e | t와 e사이에 h가 하나 있거나 혹은 없는 문자열과 일치한다. | te, the, their, lotte, … |
'^'는 바로 뒤의 문자열을 기준으로 이것과 동일한 문자열로 시작되는 것을 가리킨다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
^The | The로 시작하는 모든 문자열을 나타낸다. | The girl is beautiful!, Theater, … |
^a?bc | bc나 abc로 시작하는 모든 문자열을 나타낸다. | bc++ 3.0, abcdef), … |
^.e | e 앞에 한 글자가 존재하는 문자열로 시작하는 모든 문자열을 나타낸다. | he, me, request, settle, … |
^s.e? | s와 임의의 한 문자로 시작하고 그 뒤에 문자 e가 하나 있거나 혹은 없는 문자열을 나타낸다. | sa, sae, sb, sbe, … |
'$'는 문자열의 맨 마지막을 가리킨다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
a?bc$ | bc로 끝나는 문자열 앞에 문자 a가 없거나 하나 존재하는 문자열과 일치한다. | eeabc, seebc, bc, … |
t.e$ | t와 임의의 한 글자, 그리고 그 다음에 e로 연결되어 끝나는 문자열과 일치한다. | onthetoe, bctae, appetitte, … |
s?e+$ | 첫 글자는 s나 e로 시작하고 하나 이상의 e로 끝나는 문자열과 일치한다. | e, se, ee, eee, see, seee, … |
^the$ | the로 시작해서 the로 끝나는 문자열과 일치한다. 즉, 이 경우는 문자열 자체가 the뿐인 경우에만 일치한다. | the |
각괄호 []는 [] 안에 있는 문자열 중에서 하나의 문자만을 의미한다. [] 안에서 범위를 지정할 때는 '-' 문자를 사용한다. 즉, [a-d]는 [abcd]와 동일하며 [0-9]는 [0123456789]와 같은 의미이다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
[ab]cd | acd 또는 bcd를 포함하는 문자열과 일치한다. | acd, tacde, "bcd", "tbcde", … |
^[ab]cd | acd 또는 bcd로 시작하는 문자열과 일치한다. | acds, bcdt, acdsee32, … |
[a-z] | 영문 소문자 한 글자를 포함하는 문자열과 일치한다. | a0c2ds, ta123cde, Student, … |
[a-zA-Z] | 영문 소문자나 대문자 한 글자를 포함하는 문자열과 일치한다. | LINUX, 386AT, … |
[0-9] | 십진수 한 자를 포함하는 문자열과 일치한다. | a0c2ds, ta123cde, 386, … |
ga[a-z] | 하나의 영문 소문자 앞에 ge를 갖는 문자열과 일치한다. | LINgazUX, gazzett, … |
^ab[ce]ef | abcef 또는 abdef로 시작하는 문자열과 일치한다. | abcef0z, abdef386, … |
^[a-zA-Z] | 영문자로 시작하는 모든 문자열과 일치한다. | LINgazUX, abcef0z, … |
[a-z]+ | 영문소문자 한 자 이상을 갖는 문자열과 일치한다. | tgabcabcef, MySQL, … |
[aA][bB] | ab, aB, Ab, AB를 포함하는 문자열과 일치한다. | 386ABIT, abcef0z, tgabcabcef, … |
,[a-zA-Z0-9]$ | 콤마와 하나의 영문자 또는 숫자로 끝나는 문자열과 일치한다. | abdef38,6, 199,2, … |
만일 원하지 않는 문자를 제외한 나머지 문자를 가리킬 때에는 []안의 첫 문자로 '^'를 사용한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
[^ab]cd | acd와 bcd를 제외하고는 패턴 .cd와 같다. 즉, cd앞에 a나 b를 제외한 하나의 문자를 포함하는 문자열과 일치한다. | ccd, scd, 018cd, tgcdcdabcef, gazcd18, … |
s[^ab]t | sat와 sbt를 제외하고는 패턴 s.t와 같다. 즉, t 앞에 a나 b를 제외한 임의의 한 문자와 그 앞에 s가 있는 문자열과 일치한다. | sct, sdt, tgcdsctda28, settle, … |
[^a-z] | 영문 소문자를 제외한 한 글자를 포함한 문자열과 일치한다. | MySQL, 386sAB,IT, abcef0z, 199,2, … |
[^a-zA-Z] | 영문자를 제외한 한 글자를 포함하는 문자열과 일치한다. | 286sAB,IT, gazscd18, abcef0z, 199,2, … |
[^0-9] | 숫자를 제외한 한 글자를 포함하는 문자열과 일치한다. | settle, gazscd18, LINUX, … |
중괄호 {}는 {} 앞에 있는 문자나 문자열의 개수를 결정한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
a{2}b | aab를 가진 문자열과 일치한다. 즉, {2}는 {}앞에 있는 문자 a의 개수가 2개임을 의미한다. | aab, … |
a{2,}b | a의 개수가 최소한 2개 이상인 문자열을 포함하는 문자열과 일치한다. | aab, aaab, aaaab, … |
a{1,3}b | b앞에 1개부터 3개까지의 a를 갖는 문자열을 포함하는 문자열과 일치한다. | ab, aab, aaab, … |
둥근괄호 ()는 () 앞에 있는 글자들을 그룹화 한다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
a(bc){2} | a뒤에 bc의 개수가 두 개인 문자열 abcbc를 포함하는 모든 문자열과 일치한다. [bc]가 b 또는 c중 하나를 의미하는 것에 비해 (bc)는 bc를 하나의 그룹으로 처리한다. | docabcbctor, tabcbc++, … |
a(bc)* | a뒤에 bc가 없거나 하나 이상인 문자열과 일치한다. | sea, abcd, abcbcbcbc, … |
'|'는 OR 연산자이다.
사용예 | 내용 | 해당 문자열 |
---|---|---|
he|she | he나 she를 포함하는 문자열과 일치한다. | he is handsome, she's gone, … |
(he|she)is | is 앞에 he나 she를 포함하는 문자열, 즉 heis나 sheis를 포함하는 모든 문자열과 일치한다. | |
(le|li)*ft | ft 앞에 le나 li가 없거나 하나 이상인 문자열과 일치한다. | mlefto, lft, lelift, fclelelilefte, … |
mo(no)+ | mo뒤에 no가 하나 이상인 문자열과 일치한다. | mono, monono, mononono, acmonoe, … |
패턴을 [a-z]나 [A-Z], [0-9]로 표현하는 대신 다음과 같이 문자 클래스(character class)로 간단하게 표현할 수도 있다.
지금까지 정규 표현식에서 사용한 여러 특수 문자를 특수 문자가 아닌 그 문자 자체의 의미로 사용하려면 특수 문자 앞에 역슬래시('\') 문자를 붙여 escape시켜야 한다. 정규 표현식에서 escape시켜야 하는 특수 문자로는 다음과 같은 것들이 있다.
^ . [ ] $ ( ) | * + ? { } \ |
출처 :
플레쉬 차트 (OFC2JS) - Table2Chart (0) | 2010.01.19 |
---|---|
정규표현식 테스트 필요할 때 보조 프로그램 (0) | 2010.01.19 |
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버 (2) | 2009.12.28 |
XAMPP 설치 가이드 (0) | 2009.12.28 |
xampp (0) | 2009.12.28 |
###########################
## xampp
###########################
XAMPP는 크로스 플랫폼 웹 서버 자유 소프트웨어 꾸러미이다.
아파치 웹 서버 MySQL, PHP, 펄을 포함하고 있다.
GNU 일반 공중 사용 허가서로 배포되며 자유롭고 쓰기 쉬운 웹 서버이다.
마이크로소프트 윈도, 리눅스, 솔라리스, 맥 오에스 텐 등에서 동작하며 주로 웹 개발에 사용된다.
XAMPP 1.7.3 버젼 특징
xampp 홈페이지 : http://www.apachefriends.org/en/xampp.html
Vista 버젼에서는
권한 문제 때문에 C:\Program Files 폴더 보다는
C:\xampp 나 C:\meinverzeichnis\xampp로 하는것을 추천함.
소스포지 다운로드 주소 : http://sourceforge.net/projects/xampp/files/
윈도우즈 버젼...
플레쉬 차트 (OFC2JS) - Table2Chart (0) | 2010.01.19 |
---|---|
정규표현식 테스트 필요할 때 보조 프로그램 (0) | 2010.01.19 |
PHP 정규표현식 (0) | 2010.01.18 |
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버 (2) | 2009.12.28 |
XAMPP 설치 가이드 (0) | 2009.12.28 |