|
|
게시물 57건
|
|
|
정규 표현식의 규칙 |
|
글쓴이 :
최고관리자
날짜 : 2010-01-22 (금) 14:45
조회 : 7673
|
|
글주소 :
|
정규 표현식의 규칙
1. '.' 특수 문자
사용예 |
해당 문자열 |
s.e |
sae, sbe, sce, sde |
.ce |
ace, kce, ffce |
2. '*' 특수 문자
'*'는 바로 앞의 문자를 의미하며 그 문자가 없거나 하나 이상임을 나타낸다. '.'는 그 자체로 임의의 한 글자만을 의미하는 데 반해 '*'는 바로 복수 개의 문자를 나타낼 수 있다. 대신 '*' 앞에는 반드시 문자가 하나 이상 있어야 한다.
만약 "*e"와 같이 '*' 앞에 문자가 없으면 잘못된 패턴으로 인식해 에러가 발생
사용예 |
내 용 |
해당 문자열 |
s*e |
e앞에 s가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다 |
e, se, sse, ssse ... |
abc* |
ab 다음에 c가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다 |
ab, abc, abcc, abccc ... |
h*im |
im 앞에 h가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. |
im, him, hhim, hhhim ... |
3. '+' 특수 문자
'+'는 바로 앞의 문자를 의미하며 그 문자가 하나 이상임을 나타낸다. '*'와 마찬가지로 앞에 한 문자가 있어야 하며 이 문자가 최소 하나 이상 존재하는 모든 문자열을 포함한다.
사용예 |
내 용 |
해당 문자열 |
s+e |
문자 e앞에 s가 최소한 하나 이상 존재하는
모든 문자열 |
se, sse, ssse, sssse, settle ... |
4. '?' 특수 문자
'?'는 바로 앞의 문자가 없거나 혹은 있음을 나타낸다. 예를 들면 s?e는 '?'앞의 문자 s가 없거나 하나 존재하는 문자열 e나 se를 포함
사용예 |
내 용 |
해당 문자열 |
th?e |
t와 e사이에 h가 하나 있거나 혹은 없는
문자열과 일치 |
te. the, their, lotte.... |
5. '^' 특수 문자
바로 뒤의 문자열을 기준으로 이것과 동일한 문자열로 시작되는 것을 가리킨다.
사용예 |
내 용 |
해당 문자열 |
^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 ... |
6. '$' 특수 문자
문자열의 맨 마지막을 가리킨다.
사용예 |
내 용 |
해당 문자열 |
a?bc$ |
bc로 끝나는 문자열 앞에 문자 a가 없거나
하나 존재하는 문자열과 일치 |
eeabc, seebc, bc ... |
t.e$ |
t와 임의의 한 글자, 그리고 그 다음에 e로
연결되어 끝나는 문자열과 일치 |
onthetoe, bctae, appetitte ... |
s?e+$ |
첫 글자는 s나 e로 시작하고 하나 이상의
e로 끝나는 문자열과 일치 |
e, se, ee, eee, see, seeee ... |
^the$ |
the로 시작해서 the로 끝나는 문자열과
일치한다. 즉, 이 경우는 문자열 자체가 the
뿐인 경우에만 일치한다. |
the |
7. '[]' 특수 문자
[]안에 있는 문자열 중에서 하나의 문자만을 의미한다. []안에서 범위를 지정할 때에는 '-' 문자를 사용한다.
즉, [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] |
하나의 영문 소문자 앞에 ga를 갖는 문자열 |
LINgazUX, gazzett ... |
^ab[cd]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와 같다. |
ccd, scd, 018cd, tgcdcdabcef, gazcd18 |
s[^ab]t |
sat와 sbt를 제외하는 패턴, s.t와 같다. |
sct, sdt, tgcdsctda28, settle |
[^a-z] |
영문 소문자를 제외한 한글자를 포함한
문자열과 일치 |
MySQL, 386sAB, IT, abcef0z, 199,2 ... |
[^a-zA-Z] |
영문자를 제외한 한글자를 포함하는 문자열 |
386sAB, IT, gazscd18, abcef0z, 199,2 ... |
[^0-9] |
숫자를 제외한 한글자를 포함하는 문자열 |
settle, gazscd18, LINUX ... |
8. '{}' 특수 문자
{}앞에 있는 문자나 문자열의 개수를 결정
사용예 |
내 용 |
해당 문자열 |
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 |
''*'는 중괄호로 표현하면 {0,}과 같은 의미이고 '+'는 {1,}과 '?'는 {0,1}과 각각 같은 의미임을 알 수 있다.
9. '( )' 특수 문자
( ) 안에 있는 글자들을 그룹화 한다.
사용예 |
내 용 |
해당 문자열 |
a(bc){2} |
a뒤에 bc의 개수가 두 개인 문자열 abcbc를
포함하는 모든 문자열과 일치, (bc)는 bc를
하나의 그룹으로 처리 |
docabcbctor, tabcbc++ ... |
a(bc)* |
a뒤에 bc가 없거나 하나 이상인 문자열 |
sea, abcd, abcbcbcbc ... |
10. '|' 특수 문자 : OR 연산자
사용예 |
내 용 |
해당 문자열 |
he|she |
he나 she를 포함하는 문자열 |
he is hansome, she's gone. |
(he|she)is |
is앞에 he나 she를 포함하는 문자열 |
|
(le|li)*ft |
ft앞에 le나 li가 없거나 하나 이상인 문자열 |
mlefto, lft, lelift, fclelelilefte ... |
mo(no)+ |
mo뒤에 no가 하나 이상인 문자열 |
mono, monono, mononono |
문자 클래스(character class)
패턴을 [a-z]나 [A-Z], [0-9]로 표현하는 대신 다음과 같이 문자 클래스(character class)로 간단하게 표현할 수도 있다.
- [[:alpha:]] : 알바벳 문자 중 하나를 의미하며 [a-zA-Z], 또는 [a-Z]와 동일한 표현
- [[:digit:]] : 숫자 한 자를 의미하며 [0-9]와 동일한 표현
- [[:alnum:]] : 알파벳 문자나 숫자 중 하나를 의미하며 [a-zA-Z0-9]와 동일한 표현
- [[:space:]] : 공백 문자()를 의미
|
|
|
|
|
|