'Photo Album > Family' 카테고리의 다른 글
20071011 할머니네서... (0) | 2007.10.11 |
---|---|
20071009 강이가 병원에 오는 이유 (0) | 2007.10.09 |
20071006 폰사진 (0) | 2007.10.06 |
20071004 할머니등의 수 (0) | 2007.10.04 |
20070928 폰사진 (0) | 2007.09.28 |
20071011 할머니네서... (0) | 2007.10.11 |
---|---|
20071009 강이가 병원에 오는 이유 (0) | 2007.10.09 |
20071006 폰사진 (0) | 2007.10.06 |
20071004 할머니등의 수 (0) | 2007.10.04 |
20070928 폰사진 (0) | 2007.09.28 |
이건 누가 찍은거엿....
20071009 강이가 병원에 오는 이유 (0) | 2007.10.09 |
---|---|
20071008 병원에서 엄마랑 강이랑 (0) | 2007.10.08 |
20071004 할머니등의 수 (0) | 2007.10.04 |
20070928 폰사진 (0) | 2007.09.28 |
20070913 폰사진 (0) | 2007.09.13 |
틱장애 (Tic Disorder) (0) | 2008.08.25 |
---|---|
감기? (0) | 2008.08.20 |
프랑스 고졸 자격 시험문제 (0) | 2004.11.10 |
대한소아과학회 예방접종표 (0) | 2004.11.09 |
KTF 현직 과장이 92만명 고객 정보 팔아넘겨 (1) | 2004.10.14 |
20071008 병원에서 엄마랑 강이랑 (0) | 2007.10.08 |
---|---|
20071006 폰사진 (0) | 2007.10.06 |
20070928 폰사진 (0) | 2007.09.28 |
20070913 폰사진 (0) | 2007.09.13 |
20070906 낮잠 삼남매 (0) | 2007.09.06 |
Version: | 3.0 |
Date Published: | 9/24/2007 |
Language: | English |
Download Size: | 44 KB - 95 |
*Download size depends on selected download components. |
ASP Dictionary Object (0) | 2008.04.07 |
---|---|
Microsoft Log Parser 2.2 (0) | 2008.03.28 |
JavaScript String Object (0) | 2007.07.31 |
날이면 날마다 까먹는 정규식 구성요소 (RegExp) (0) | 2007.04.18 |
HTML 특수문자 코드표 (0) | 2007.03.21 |
20071006 폰사진 (0) | 2007.10.06 |
---|---|
20071004 할머니등의 수 (0) | 2007.10.04 |
20070913 폰사진 (0) | 2007.09.13 |
20070906 낮잠 삼남매 (0) | 2007.09.06 |
20070828 산이아빠 병원에 입원중~ (0) | 2007.08.28 |
20071004 할머니등의 수 (0) | 2007.10.04 |
---|---|
20070928 폰사진 (0) | 2007.09.28 |
20070906 낮잠 삼남매 (0) | 2007.09.06 |
20070828 산이아빠 병원에 입원중~ (0) | 2007.08.28 |
20070815 롯데월드에 다녀왔어요~ (0) | 2007.08.15 |
20070928 폰사진 (0) | 2007.09.28 |
---|---|
20070913 폰사진 (0) | 2007.09.13 |
20070828 산이아빠 병원에 입원중~ (0) | 2007.08.28 |
20070815 롯데월드에 다녀왔어요~ (0) | 2007.08.15 |
20070811 돌아온 토요일, 이번에는 산이도 함께 (0) | 2007.08.11 |
20070913 폰사진 (0) | 2007.09.13 |
---|---|
20070906 낮잠 삼남매 (0) | 2007.09.06 |
20070815 롯데월드에 다녀왔어요~ (0) | 2007.08.15 |
20070811 돌아온 토요일, 이번에는 산이도 함께 (0) | 2007.08.11 |
20070801 미스터 피자를 갔지요 (0) | 2007.08.01 |
다시 태어날 수 있다면... (0) | 2009.02.03 |
---|---|
미안합니다. 여러분. (0) | 2008.05.26 |
정신없는 일상? 일상은 아니지... (0) | 2007.07.05 |
AweSome God (0) | 2007.05.08 |
CACAO 99% (2) | 2007.02.14 |
20070906 낮잠 삼남매 (0) | 2007.09.06 |
---|---|
20070828 산이아빠 병원에 입원중~ (0) | 2007.08.28 |
20070811 돌아온 토요일, 이번에는 산이도 함께 (0) | 2007.08.11 |
20070801 미스터 피자를 갔지요 (0) | 2007.08.01 |
20070729 간만의 아웃백 (0) | 2007.07.29 |
20070828 산이아빠 병원에 입원중~ (0) | 2007.08.28 |
---|---|
20070815 롯데월드에 다녀왔어요~ (0) | 2007.08.15 |
20070801 미스터 피자를 갔지요 (0) | 2007.08.01 |
20070729 간만의 아웃백 (0) | 2007.07.29 |
20070728 김강 사무실을 방문하다. (0) | 2007.07.28 |
20070815 롯데월드에 다녀왔어요~ (0) | 2007.08.15 |
---|---|
20070811 돌아온 토요일, 이번에는 산이도 함께 (0) | 2007.08.11 |
20070729 간만의 아웃백 (0) | 2007.07.29 |
20070728 김강 사무실을 방문하다. (0) | 2007.07.28 |
20070725 부천 GS스퀘어 (0) | 2007.07.25 |
Method | Description | FF | N | IE |
---|---|---|---|---|
anchor() | Creates an HTML anchor | 1 | 2 | 3 |
big() | Displays a string in a big font | 1 | 2 | 3 |
blink() | Displays a blinking string | 1 | 2 | |
bold() | Displays a string in bold | 1 | 2 | 3 |
charAt() | Returns the character at a specified position | 1 | 2 | 3 |
charCodeAt() | Returns the Unicode of the character at a specified position | 1 | 4 | 4 |
concat() | Joins two or more strings | 1 | 4 | 4 |
fixed() | Displays a string as teletype text | 1 | 2 | 3 |
fontcolor() | Displays a string in a specified color | 1 | 2 | 3 |
fontsize() | Displays a string in a specified size | 1 | 2 | 3 |
fromCharCode() | Takes the specified Unicode values and returns a string | 1 | 4 | 4 |
indexOf() | Returns the position of the first occurrence of a specified string value in a string | 1 | 2 | 3 |
italics() | Displays a string in italic | 1 | 2 | 3 |
lastIndexOf() | Returns the position of the last occurrence of a specified string value, searching backwards from the specified position in a string | 1 | 2 | 3 |
link() | Displays a string as a hyperlink | 1 | 2 | 3 |
match() | Searches for a specified value in a string | 1 | 4 | 4 |
replace() | Replaces some characters with some other characters in a string | 1 | 4 | 4 |
search() | Searches a string for a specified value | 1 | 4 | 4 |
slice() | Extracts a part of a string and returns the extracted part in a new string | 1 | 4 | 4 |
small() | Displays a string in a small font | 1 | 2 | 3 |
split() | Splits a string into an array of strings | 1 | 4 | 4 |
strike() | Displays a string with a strikethrough | 1 | 2 | 3 |
sub() | Displays a string as subscript | 1 | 2 | 3 |
substr() | Extracts a specified number of characters in a string, from a start index | 1 | 4 | 4 |
substring() | Extracts the characters in a string between two specified indices | 1 | 2 | 3 |
sup() | Displays a string as superscript | 1 | 2 | 3 |
toLowerCase() | Displays a string in lowercase letters | 1 | 2 | 3 |
toUpperCase() | Displays a string in uppercase letters | 1 | 2 | 3 |
toSource() | Represents the source code of an object | 1 | 4 | - |
valueOf() | Returns the primitive value of a String object | 1 | 2 | 4 |
Property | Description | FF | N | IE |
---|---|---|---|---|
constructor | A reference to the function that created the object | 1 | 4 | 4 |
length | Returns the number of characters in a string | 1 | 2 | 3 |
prototype | Allows you to add properties and methods to the object | 1 | 2 | 4 |
Microsoft Log Parser 2.2 (0) | 2008.03.28 |
---|---|
Windows Server 2008 Release (0) | 2007.10.02 |
날이면 날마다 까먹는 정규식 구성요소 (RegExp) (0) | 2007.04.18 |
HTML 특수문자 코드표 (0) | 2007.03.21 |
요청 개체 오류 'ASP 0104 : 80020009' 허용되지 않는 작업 (0) | 2005.12.18 |
20070811 돌아온 토요일, 이번에는 산이도 함께 (0) | 2007.08.11 |
---|---|
20070801 미스터 피자를 갔지요 (0) | 2007.08.01 |
20070728 김강 사무실을 방문하다. (0) | 2007.07.28 |
20070725 부천 GS스퀘어 (0) | 2007.07.25 |
20070723 일상의 아침 (1) | 2007.07.23 |
20070801 미스터 피자를 갔지요 (0) | 2007.08.01 |
---|---|
20070729 간만의 아웃백 (0) | 2007.07.29 |
20070725 부천 GS스퀘어 (0) | 2007.07.25 |
20070723 일상의 아침 (1) | 2007.07.23 |
20070721 소아과 다녀오는길 (0) | 2007.07.21 |
20070729 간만의 아웃백 (0) | 2007.07.29 |
---|---|
20070728 김강 사무실을 방문하다. (0) | 2007.07.28 |
20070723 일상의 아침 (1) | 2007.07.23 |
20070721 소아과 다녀오는길 (0) | 2007.07.21 |
20070606 집에서~ (0) | 2007.06.06 |
20070728 김강 사무실을 방문하다. (0) | 2007.07.28 |
---|---|
20070725 부천 GS스퀘어 (0) | 2007.07.25 |
20070721 소아과 다녀오는길 (0) | 2007.07.21 |
20070606 집에서~ (0) | 2007.06.06 |
20070522 시체놀이 (0) | 2007.05.22 |
20070725 부천 GS스퀘어 (0) | 2007.07.25 |
---|---|
20070723 일상의 아침 (1) | 2007.07.23 |
20070606 집에서~ (0) | 2007.06.06 |
20070522 시체놀이 (0) | 2007.05.22 |
20070520 주일 저녁 (0) | 2007.05.20 |
오라클 정규식을 찾던중에 레퍼런스 페이지에서 발견~
10g부터 지원이 된다하니.... 9i까지는 삽질의 세계로~
Writing Better SQL Using Regular Expressions
By Alice Rischert
The regular expressions feature in Oracle Database 10g is a powerful tool for manipulating textual data
A new feature of Oracle Database 10g vastly improves your ability to search and manipulate character data. This feature, regular expressions, is a notation for describing textual patterns. It has long been available in many programming languages and a number of UNIX utilities.
Oracle's implementation of regular expressions comes in the form of various SQL functions and a WHERE clause operator. If you are unfamiliar with regular expressions, this article can give you a glimpse into this new and extremely powerful yet seemingly cryptic capability. Readers already familiar with regular expressions can gain an understanding of how to apply this functionality within the context of the Oracle SQL language.
What Is a Regular Expression?
A regular expression comprises one or more character literals and/or metacharacters. In its simplest format, a regular expression can consist only of character literals, such as the regular expression cat. It is read as the letter c followed by the letters a and t and this pattern matches strings such as cat, location, and catalog. Metacharacters provide algorithms that specify how Oracle should process the characters that make up a regular expression. When you understand the meaning of the various metacharacters, you will see that regular expressions are powerful for isolating and replacing specific textual data.
Data validation, identification of duplicate word occurrences, detection of extraneous white spaces, or parsing of strings are just some of the many uses of regular expressions. You can apply them in order to validate the formats of phone numbers, zip codes, email addresses, Social Security numbers, IP addresses, filenames and pathnames, and so on. Furthermore, you can locate patterns such as HTML tags, numbers, dates, or anything that fits any pattern within any textual data and replace them with other patterns.
Using Regular Expressions With Oracle Database 10g
To harness the power of regular expressions, you can exploit the newly introduced Oracle SQL REGEXP_LIKE operator and the REGEXP_INSTR, REGEXP_SUBSTR, and REGEXP_REPLACE functions. You will see how this new functionality supplements the existing LIKE operator and the INSTR, SUBSTR, and REPLACE functions. In fact, they are similar to the existing operator and functions but now offer powerful pattern-matching capabilities. The searched data can be simple strings or large volumes of text stored in the database character columns. Regular expressions let you search, replace, and validate data in ways you have never thought of before, with a high degree of flexibility.
Basic Examples of Regular Expressions
Before using the new functionality, you need to understand the meaning of some of the metacharacters. The period (.) matches any character (except newline) in a regular expression. For example, the regular expression a.b matches a string containing the letter a, followed by any other single character (except newline), followed by the letter b. The strings axb, xaybx, and abba are matches because this pattern is buried in the string. If you want to exactly match a three-letter string in which the line begins with a and ends with b, you must anchor the regular expression. The caret (^) metacharacter indicates the start of a line, and the dollar symbol ($) designates the end of the line (see Table 1). Therefore, the regular expression ^a.b$ matches the strings aab, abb, or axb. To contrast this approach with the familiar pattern matching available with the LIKE operator, you can express such a pattern as a_b, where the underbar (_) is the one-character wildcard.
By default, an individual character or character list in a regular expression matches just once. To indicate multiple occurrences of a character in a regular expression, you apply a quantifier, also called a repetition operator. If you want a match that starts with the letter a and ends with the letter b, your regular expression looks like this: ^a.*b$. The * metacharacter repeats the preceding match any metacharacter (.) zero, one, or more times. The equivalent pattern with the LIKE operator is a%b, with the percent (%) indicating zero, one, or multiple occurrences of any character.
Table 2 shows the complete list of repetition operators. Notice that it contains specific repetition choices that allow more flexibility than the existing LIKE wildcard characters. If you use parentheses around an expression, effectively creating a subexpression, the subexpression can be repeated a certain number of times. For example, the regular expression b(an)*a matches ba, bana, banana, yourbananasplit, and so on.
Oracle's regular expression implementation supports the POSIX (Portable Operating System Interface) character classes, as listed in Table 3. This means that you can be very specific about the type of character you are looking for. Imagine writing a LIKE condition that looks only for nonalphabetic characters—the resulting WHERE clause could easily become very complex.
The POSIX character class must be enclosed by a character list indicated by square brackets ([]). For example, the regular expression [[:lower:]] matches a lowercase character and [[:lower:]]{5} matches five consecutive lowercase characters.
Besides the POSIX character classes, you can place individual characters in a character list. For example, the regular expression ^ab[cd]ef$ matches the strings abcef and abdef. Either c or d must be chosen.
Most metacharacters inside a character list are understood as literals, with the exception of the caret (^) and the hyphen (-). Regular expressions appear complicated because some metacharacters have multiple meanings, depending on the context. The ^ is just one such metacharacter. If you use it as the first character inside a character list, it means the negation of a character list. Therefore, [^[:digit:]] looks for a pattern consisting of any nondigit character whereas ^[[:digit:]] looks for matches that start with a digit. The hyphen (-) indicates a range; the regular expression [a-m] matches any of the letters a through letter m. But it means the literal hyphen if it is the first character in a character list such as in [-afg].
One of the previous examples introduced the use of parentheses to create a subexpression; they allow you to enter alternates separated by the vertical bar (|) alteration metacharacter.
For example, the regular expression t(a|e|i)n allows three possible alternate characters between the letters t and n. Matches include words such as tan, ten, tin, and Pakistan but not teen, mountain, or tune. Alternatively, the regular expression t(a|e|i)n can also be expressed as a character list, which is t[aei]n. Table 4 summarizes these metacharacters. Although more metacharacters exist, this brief overview is sufficient for understanding the regular expressions this article uses.
The REGEXP_LIKE Operator
The REGEXP_LIKE operator introduces you to regular expression functionality when applied within the Oracle database. Table 5 lists the syntax of REGEXP_LIKE.
The following SQL query's WHERE clause shows the REGEXP_LIKE operator, which searches the ZIP column for a pattern that satisfies the regular expression [^[:digit:]]. It will retrieve those rows in the ZIPCODE table for which the ZIP column values contain any character that is not a numeric digit.
SELECT zip
FROM zipcode
WHERE REGEXP_LIKE(zip, '[^[:digit:]]')
ZIP
-----
ab123
123xy
007ab
abcxy
This example of a regular expression consists only of metacharacters—more specifically the POSIX character class digit delimited by colons and square brackets. The second set of brackets (as in [^[:digit:]]) encloses a character class list. As previously mentioned, this is required because you can use POSIX character classes only for constructing a character list.
The REGEXP_INSTR Function
This function returns the starting position of a pattern, so it works much like the familiar INSTR function. The syntax of the new REGEXP_INSTR function is shown in Table 6. The main difference between the two functions is that REGEXP_INSTR lets you specify a pattern instead of a specific search string; thus providing greater versatility. The next example uses REGEXP_INSTR to return the starting position of the five-digit zip-code pattern within the string Joe Smith, 10045 Berry Lane, San Joseph, CA 91234. If the regular expression is written as [[:digit:]]{5}, you will get the house number's starting position instead of the zip code's, because 10045 is the first occurrence of five consecutive digits. Therefore, you must anchor the expression to the end of the line, as indicated with the $ metacharacter, and the function will display the starting position of the zip code regardless of the number of digits for the house number.
SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234',
'[[:digit:]]{5}$')
AS rx_instr
FROM dual
RX_INSTR
----------
45
Writing More Complex Patterns
Let's expand on the zip code pattern of the previous example to include an optional four digits. Your pattern may now look like this: [[:digit:]]{5}(-[[:digit:]]{4})?$. If your source string ends in either the 5-digit zip code or the 5-digit + 4 zip-code format, you'll be able to show the pattern's starting position.
SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234-1234',
' [[:digit:]]{5}(-[[:digit:]]{4})?$')
AS starts_at
FROM dual
STARTS_AT
----------
44
In this example the parenthesized subexpression (-[[:digit:]]{4}) is repeated zero or one times, as indicated by the ? repetition operator. Again, attempting to use the traditional SQL functions to accomplish the same result poses a challenge even to SQL experts. To better explain the various components of the regular expression example, Table 7 contains a description of the individual literals and metacharacters.
The REGEXP_SUBSTRFunction
The REGEXP_SUBSTR function, much like the SUBSTR function, extracts part of a string. Table 8 displays the syntax of the new function. In the following example, the string that matches the pattern , [^,]*, is returned. The regular expression searches for a comma followed by a space; then zero or more characters that are not commas, as indicated by [^,]*; and lastly looks for another comma. The pattern will look somewhat similar to a comma-separated values string.
SELECT REGEXP_SUBSTR('first field, second field , third field',
', [^,]*,')
FROM dual
REGEXP_SUBSTR('FIR
------------------
, second field ,
The REGEXP_REPLACE Function
Let's first look at the traditional REPLACE SQL function, which substitutes one string with another. Assume your data has extraneous spaces in the text and you would like to replace them with a single space. With the REPLACE function, you need to list exactly how many spaces you want to replace. However, the number of extra spaces may not be the same everywhere in the text. The next example has three spaces between Joe and Smith. The REPLACE function's parameter specifies that two spaces should be replaced with one space. In this case, the result leaves an extra space where there were three spaces in the original string between Joe and Smith.
SELECT REPLACE('Joe Smith',' ', ' ')
AS replace
FROM dual
REPLACE
---------
Joe Smith
The REGEXP_REPLACE function takes the substitution a step further; the syntax is listed in Table 9. The following query replaces any two or more spaces with a single space. The ( ) subexpression contains a single space, which can be repeated two or more times, as indicated by {2,}.
SELECT REGEXP_REPLACE('Joe Smith',
'( ){2,}', ' ')
AS RX_REPLACE
FROM dual
RX_REPLACE
----------
Joe Smith
|
|
Oracle Table Partitioning (0) | 2008.04.22 |
---|---|
ORACLE HINT RULE (0) | 2008.04.04 |
ORACLE TABLE INDEX RULE (0) | 2008.03.27 |
SQL Function Reference: Oracle vs. SQL Server (0) | 2007.01.16 |
SQL Server에서 사용할 수 있는 서버측 페이징기법 (0) | 2005.10.14 |
미안합니다. 여러분. (0) | 2008.05.26 |
---|---|
블로그!,블로거?,블로깅! (0) | 2007.08.16 |
AweSome God (0) | 2007.05.08 |
CACAO 99% (2) | 2007.02.14 |
Faith in Motion (0) | 2006.09.29 |
현충일을 맞이하여 식구들이 떼로 모였었습니다...
고모부가 오셔서.... 사진을 찍어 줬어요....
20070723 일상의 아침 (1) | 2007.07.23 |
---|---|
20070721 소아과 다녀오는길 (0) | 2007.07.21 |
20070522 시체놀이 (0) | 2007.05.22 |
20070520 주일 저녁 (0) | 2007.05.20 |
20070513 부평공원 입구 (0) | 2007.05.13 |
20080801 여수 식구들 (0) | 2008.08.01 |
---|---|
20071223 어린이 뮤지컬 (0) | 2007.12.23 |
20060717 서대문견문록 - 업그레이드 정현 (0) | 2006.07.17 |
20060717 서대문견문록 - 하미현스페셜 (0) | 2006.07.17 |
20060717 서대문견문록 - 칠푼이커플 (0) | 2006.07.17 |
20070721 소아과 다녀오는길 (0) | 2007.07.21 |
---|---|
20070606 집에서~ (0) | 2007.06.06 |
20070520 주일 저녁 (0) | 2007.05.20 |
20070513 부평공원 입구 (0) | 2007.05.13 |
20070505 처음타본 인라인 스케이트 (0) | 2007.05.05 |
이것이 바로 침범벅~ 침으로 세수를 한 얼굴입죠~
20070606 집에서~ (0) | 2007.06.06 |
---|---|
20070522 시체놀이 (0) | 2007.05.22 |
20070513 부평공원 입구 (0) | 2007.05.13 |
20070505 처음타본 인라인 스케이트 (0) | 2007.05.05 |
20070505 어린이날 - 우리들은 자란다~ 잇힝~ (0) | 2007.05.05 |
업무차 아침부터 외근을 나갔다가 오후에 퇴근하던길에.... 학교 동아리방에 잠시 들러보았습니다.
워...이미 띠동갑을 넘어선 후배들이 인사를 하더군요... 성향도 바뀌고 아이들도 바뀌었지만.. 그래도 즐거웠습니다. 시대의 변화에 적응하지 못하는 조직은 도태된다고 하지요..
나름대로 잘 적응해나가가고, 살아남아서 움직이는 아이들을 보면서 감사했습니다.
몇명 찍어주지는 못했지만... 내 후배들이기에 이곳에 남겨봅니다...
07학번이랍니다... 음..07이라...
20100429 개발2팀 저녁모임~ (0) | 2010.04.29 |
---|---|
20070408 여수바닷가 (0) | 2007.04.08 |
20040918 제주도 풍경 (0) | 2004.09.18 |
20040818 노을 (0) | 2004.08.18 |
20040626 소래포구 갈매기떼 (0) | 2004.06.26 |
시내쪽에 나갔다가 부평공원을 가로질러 집에 갈라치면... 미군 캠프마켓으로 연결되는 철도가 있습니다. 기찻길과 부평공원 입구에서 사진을~
20070522 시체놀이 (0) | 2007.05.22 |
---|---|
20070520 주일 저녁 (0) | 2007.05.20 |
20070505 처음타본 인라인 스케이트 (0) | 2007.05.05 |
20070505 어린이날 - 우리들은 자란다~ 잇힝~ (0) | 2007.05.05 |
20070429 교회가는날 (0) | 2007.04.29 |
나에게 결정하라 한다..
아니 결정이 되어 있다..그리고 행하라 하는데.. 겁이난다..
과연 그렇게 하는게 정말로 원하시는걸까..
온전한 믿음과 확신이 먼저일까.. 행함이 먼저일까..
행함 가운데서 확신을 찾아야 하는걸까... 일단 확신후에 뛰어들어야 하는걸까..
너무 무겁고, 힘들고, 어려운 자리여서...
지금까지 힘들어하는 녀석들의 모습을 보면서도 나스스로 외면 하고 있었던거라고,
내 마음은 지금도 그렇게 외쳐대는데...
블로그!,블로거?,블로깅! (0) | 2007.08.16 |
---|---|
정신없는 일상? 일상은 아니지... (0) | 2007.07.05 |
CACAO 99% (2) | 2007.02.14 |
Faith in Motion (0) | 2006.09.29 |
나는 운전이 무섭다 (2) | 2006.08.16 |
20070520 주일 저녁 (0) | 2007.05.20 |
---|---|
20070513 부평공원 입구 (0) | 2007.05.13 |
20070505 어린이날 - 우리들은 자란다~ 잇힝~ (0) | 2007.05.05 |
20070429 교회가는날 (0) | 2007.04.29 |
20070428 웃는얼굴 우는얼굴 (0) | 2007.04.28 |
20070513 부평공원 입구 (0) | 2007.05.13 |
---|---|
20070505 처음타본 인라인 스케이트 (0) | 2007.05.05 |
20070429 교회가는날 (0) | 2007.04.29 |
20070428 웃는얼굴 우는얼굴 (0) | 2007.04.28 |
20070426 일상 - 그러나 언제나 사건사고~ (0) | 2007.04.26 |