ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
SMALL
์ถ์ฒ:๋ค์ด๋ฒ ๋ธ๋ฌ๊ทธ;;;
์๋ณธ:์ ๋ก๋ณด๋์ฌ์ดํธ(?)
ํ ๋~....
์๋ฌธ php ๋ฉ๋ด์ผ ๋์๋ง:
http://www.php.net/distributions/manual/php_manual_en.chm
๋ชฉ์ฐจ->ํ ์ด๋ธ ์ค๋ธ ์ปจํ ์ธ ->Regular Expression Functions (Perl-Compatible)(์ ๊ท์..ใ )
ํ์ผ์ด๋ ๋ฌธ์์ด ๋ด์ ํฌํจ๋์ด ์๋ ํน๋ณํ ํจํด(๋๋ ํน๋ณํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฌธ์์ด)์ ๊ฒ์ํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ ์๋ ๋ค์ํ ํน์ ๋ฌธ์๋ค์ ์กฐํฉ์ ์ ๊ท์(regular expression)์ด๋ผ ํ๋ค. ์ ๊ท์์์์ ํน์ ๋ฌธ์(special character)๋ ๋ค์๊ณผ ๊ฐ๋ค.
(1) ^ (caret) : ๋ผ์ธ์ ์ฒ์์ด๋ ๋ฌธ์์ด์ ์ฒ์์ ํ์
์ : ^aaa (๋ฌธ์์ด์ ์ฒ์์ aaa๋ฅผ ํฌํจํ๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง)
(2) $ (dollar) : ๋ผ์ธ์ ๋์ด๋ ๋ฌธ์์ด์ ๋์ ํ์
์ : aaa$ (๋ฌธ์์ด์ ๋์ aaa๋ฅผ ํฌํจํ๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง)
(3) . (period) : ์์์ ํ ๋ฌธ์๋ฅผ ํ์
์ : ^a.c (๋ฌธ์์ด์ ์ฒ์์ abc, adc, aZc ๋ฑ์ ์ฐธ, aa ๋ ๊ฑฐ์ง)
a..b$ (๋ฌธ์์ด์ ๋์ aaab, abbb, azzb ๋ฑ์ ํฌํจํ๋ฉด ์ฐธ)
(4) [] (bracket) : ๋ฌธ์์ ์งํฉ์ด๋ ๋ฒ์๋ฅผ ๋ํ๋, ๋ ๋ฌธ์ ์ฌ์ด์ "-"๋ ๋ฒ์๋ฅผ ๋ํ๋
[]๋ด์์ "^"์ด ์ ํ๋๋ฉด not์ ๋ํ๋
์ด์ธ์๋ "๋ฌธ์ํด๋์ค"๋ฅผ ํฌํจํ๋ [:๋ฌธ์ํด๋์ค:]์ ํํ๊ฐ ์๋ค.
์ฌ๊ธฐ์์ "๋ฌธ์ํด๋์ค"์๋ alpha, blank, cntrl, digit, graph, lower,
print, space, uppper, xdigit๊ฐ ์๋ค.
์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ C์ธ์ด์ <ctype.h>๋ฅผ ์ฐธ์กฐํ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด [:digit:]๋ [0-9]์ [:alpha:]๋ [A-Za-z]์ ๋์ผํ๋ค.
์ด์ธ์ [:<:]์ [:>:]๋ ์ด๋ค ๋จ์ด(์ซ์, ์ํ๋ฒณ, '_'๋ก ๊ตฌ์ฑ๋จ)์ ์์๊ณผ ๋
์ ๋ํ๋ธ๋ค.
์ : [abc] (a, b, c ์ค ์ด๋ค ๋ฌธ์, "[a-c]."๊ณผ ๋์ผ)
[Yy] (Y ๋๋ y)
[A-Za-z0-9] (๋ชจ๋ ์ํ๋ฒณ๊ณผ ์ซ์)
[-A-Z]. ("-"(hyphen)๊ณผ ๋ชจ๋ ๋๋ฌธ์)
[^a-z] (์๋ฌธ์ ์ด์ธ์ ๋ฌธ์)
[^0-9] (์ซ์ ์ด์ธ์ ๋ฌธ์)
[[:digit:]] ([0-9]์ ๋์ผ)
(5) {} (brace) : {} ๋ด์ ์ซ์๋ ์ง์ ์ ์ ํ๋ฌธ์๊ฐ ๋ํ๋๋ ํ์ ๋๋ ๋ฒ์๋ฅผ ๋ํ๋
์ : a{3} ('a'์ 3๋ฒ ๋ฐ๋ณต์ธ aaa๋ง ํด๋น๋จ)
a{3,} ('a'๊ฐ 3๋ฒ ์ด์ ๋ฐ๋ณต์ธ aaa, aaaa, aaaa, ... ๋ฑ์ ๋ํ๋)
a{3,5} (aaa, aaaa, aaaaa ๋ง ํด๋น๋จ)
ab{2,3} (abb์ abbb ๋ง ํด๋น๋จ)
[0-9]{2} (๋ ์๋ฆฌ ์ซ์)
doc[7-9]{2} (doc77, doc87, doc97 ๋ฑ์ด ํด๋น)
[^Zz]{5} (Z์ z๋ฅผ ํฌํจํ์ง ์๋ 5๊ฐ์ ๋ฌธ์์ด, abcde, ttttt ๋ฑ์ด ํด๋น)
.{3,4}er ('er'์์ ์ธ ๊ฐ ๋๋ ๋ค ๊ฐ์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ด๋ฏ๋ก Peter, mother ๋ฑ์ด ํด๋น)
(6) * (asterisk) : "*" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab*c ('b'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก ac, ackdddd, abc, abbc, abbbbbbbc ๋ฑ)
* (์ ํ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ์์์ ๋ฌธ์์ด ๋ฐ ๊ณต๋ฐฑ ๋ฌธ์์ด๋ ํด๋น๋จ)
.* (์ ํ๋ฌธ์๊ฐ "."์ด๋ฏ๋ก ํ๋ ์ด์์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด, ๊ณต๋ฐฑ ๋ฌธ์์ด์ ์๋จ)
ab* ('b'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก a, accc, abb, abbbbbbb ๋ฑ)
a* ('a'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก k, kdd, sdfrrt, a, aaaa, abb, ๊ณต๋ฐฑ๋ฌธ์์ด ๋ฑ)
doc[7-9]* (doc7, doc777, doc778989, doc ๋ฑ์ด ํด๋น)
[A-Z].* (๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด)
like.* (์ง์ ์ ์ ํ๋ฌธ์๊ฐ '.'์ด๋ฏ๋ก like์ 0 ๋๋ ํ๋ ์ด์์ ๋ฌธ์๊ฐ ์ถ๊ฐ๋ ๋ฌธ์์ด์ด ๋จ, like, likely, liker, likelihood ๋ฑ)
(7) + (asterisk) : "+" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 1๋ฒ ์ด์ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab+c ('b'๋ฅผ 1๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก abc, abckdddd, abbc, abbbbbbbc ๋ฑ, ac๋ ์๋จ)
ab+ ('b'๋ฅผ 1๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก ab, abccc, abb, abbbbbbb ๋ฑ)
like.+ (์ง์ ์ ์ ํ๋ฌธ์๊ฐ '.'์ด๋ฏ๋ก like์ ํ๋ ์ด์์ ๋ฌธ์๊ฐ ์ถ๊ฐ๋ ๋ฌธ์์ด์ด ๋จ, likely, liker, likelihood ๋ฑ, ๊ทธ๋ฌ๋ like๋ ํด๋น์๋จ)
[A-Z]+ (๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด)
(8) ? (asterisk) : "?" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 0๋ฒ ๋๋ 1๋ฒ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab?c ('b'๋ฅผ 0๋ฒ ๋๋ 1๋ฒ ํฌํจํ๋ฏ๋ก abc, abcd ๋ง ํด๋น๋จ)
(9) () (parenthesis) : ()๋ ์ ๊ท์๋ด์์ ํจํด์ ๊ทธ๋ฃนํ ํ ๋ ์ฌ์ฉ
(10) | (bar) : or๋ฅผ ๋ํ๋
์ : a|b|c (a, b, c ์ค ํ๋, ์ฆ [a-c]์ ๋์ผํจ)
yes|Yes (yes๋ Yes ์ค ํ๋, [yY]es์ ๋์ผํจ)
korea|japan|chinese (korea, japan, chinese ์ค ํ๋)
(11) \ (backslash) : ์์์ ์ฌ์ฉ๋ ํน์ ๋ฌธ์๋ค์ ์ ๊ท์๋ด์์ ๋ฌธ์๋ฅผ ์ทจ๊ธํ๊ณ ์ถ์ ๋ '\'๋ฅผ ์ ํ์์ผ์ ์ฌ์ฉํ๋ฉด๋จ
์ : filename\.ext ("filename.ext"๋ฅผ ๋ํ๋)
[\?\[\\\]] ('?', '[', '\', ']' ์ค ํ๋)
์ ๊ท์์์๋ ์์์ ์ธ๊ธํ ํน์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์๋ค์ ์ผ๋ฐ ๋ฌธ์๋ก ์ทจ๊ธํจ
์ ๊ท์์ Unix์ ๋ํ์ ์ธ ์ ํธ๋ฆฌํฐ์ธ vi, emacs, ed, sed, awk, grep, egrep ๋ฑ์์ ์ฌ์ฉํ ์ ์๋ค. ๋ค์์ grep์์ ์ ๊ท์์ ํ์ฉํ ์๋ฅผ ๋ณด์ฌ ์ฃผ๊ณ ์๋ค.
(1) $ ๋ช ๋ น์ด | grep '์ ๊ท์'
<= ๋ช ๋ น์ด์ ๊ฒฐ๊ณผ๋ฅผ grep์ด ์ ๋ ฅ๋ฐ์ ์ ๊ท์์ ์ด์ฉํ์ฌ ํจํด์ ์ฐพ์๋
์ : $ who | grep 'hgkim' <= hgkim์ด๋ผ๋ ์ฌ์ฉ์๊ฐ login ํด ์๋์ง๋ฅผ ์์๋ด
$ ls -al | grep '^d.*' <= ls -al ์ ๊ฒฐ๊ณผ 'd'๋ก ์์ํ๋ ๋ผ์ธ(์ฆ ๋๋ ํ ๋ฆฌ๋ค)
๋ง์ ์ถ๋ ฅ
$ ls -al | grep '^d.*' <= ls -al ์ ๊ฒฐ๊ณผ 'd'๋ก ์์ํ๋ ๋ผ์ธ(์ฆ ๋๋ ํ ๋ฆฌ๋ค)
๋ง์ ์ถ๋ ฅ
$ ls -al | grep '^[^d]..x..x..x' <= ๋๋ ํ ๋ฆฌ๋ ์ ์ธํ๊ณ ("[^d]") ๋๊ตฌ๋
์คํ๊ฐ๋ฅํ ํ์ผ("..x..x..x")๋ค ์ฐพ๊ธฐ
(2) $ grep '์ ๊ท์' ํ์ผ์ด๋ฆ
<= ํ์ผ์ ์ ๋ ฅ๋ฐ์ ์ ๊ท์์ ์ด์ฉํ์ฌ ํจํด์ ์ฐป์๋
์: $ grep 'telnet' /etc/inetd.conf
์ด์ธ์ ๋ช ๋ น์ด๋ค๋ grep๊ณผ ์ ์ฌํ ํํ๋ก ์ด์ฉ๋๋ค. ๋ฐ๋ผ์ ์ ๊ท์์ ์ ์ด์ฉํ๋ฉด ์ ๋์ค์ ํ์ฉ์ด ๋ฐฐ๊ฐ ๋ ๊ฒ์ด๋ค.
PHP์์๋ ์ ๊ท์๊ณผ ๊ด๋ จํ์ฌ ๋ค์์ ๋ค๊ฐ์ง ํจ์๋ฅผ ์ ๊ณตํ๋ค.
int ereg(string givenPattern, string givenString, array matched);
- givenString์ "string1stringAstring2stringBstring3 ... string9stringI" ๋ก ์ฃผ์ด์ ธ ์๋ค๊ณ ํ์. ์ด๋ stringA, stringB, ... , stringI๋ NULL ์ด์ด๋ ์๊ด์ด ์๋ค(์ฆ givenString์ "string1string2string3 ... string9" ์ธ ๊ฒฝ์ฐ์).
- givenString์ด ์์ ๊ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ,
givenPattern์ "(pattern1)stringA(pattern2)stringB(pattern3) ... (pattern9)stringI"๋ก ์ ๋ ฅํ์ฌ์ผ ํ๋ค. ์ฆ pattern1, pattern2, ..., pattern9๋ ๊ฐ๊ฐ string1, string2, ... , string9์์ ์ฐพ๊ณ ์ํ๋ ์ ๊ท์์ธ ๊ฒ์ด๋ค.
- ์ด๋ pattern1์ด string1์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[1]์ ์ ์ฅ๋๊ณ , pattern2๊ฐ string2์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[2]์ ์ ์ฅ๋๊ณ , ..., pattern9๊ฐ string9์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[9]์ ์ ์ฅ๋๋ค. PHP3์ ๊ฒฝ์ฐ ereg์์๋ ์ต๋ 9๊ฐ ๊น์ง์ pattern์ ์ฐพ์ ์ ์๋๋ก ์ค์ ๋์ด ์์์ ์ ์ํ์.
- ๊ทธ๋ฆฌ๊ณ $matched[0]์๋ $matched[1]stringA$matched[2]stringB ... $matched[9]stringI๊ฐ ์ ์ฅ๋๋ค.
- ereg๊ฐ ๋ฐํํ๋ ๊ฐ์ $matched[0]์ ์ ์ฅ๋ ๋ฌธ์์ด์ ๊ฐ์์ด๋ค.
- ereg๋ case sensitive
- eregi๋ case insensitive
์1 :
์ฝ๋ => print(ereg ("(.*)ef([abc].*)","abcdefabc",$matched));
print("<br>");
while (list($a,$b)=each($matched))
if ($b)
print("$a, $b <br>");
๊ฒฐ๊ณผ => 9
0, abcdefabc
1, abcd
2, abc
์2 :
์ฝ๋ => print(ereg ("(.*)d(.*)e(.*)qrs(.*)","abcdefghijklmnopqrstuvwxyz",$matched));
print("<br>");
while (list($a,$b)=each($matched))
if ($b)
print("$a, $b <br>");
๊ฒฐ๊ณผ => 26
0, abcdefghijklmnopqrstuvwxyz
1, abc
3, fghijklmnop
4, tuvwxyz
์ 3 :
์ฝ๋ => $date="1999-11-17";
if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
print("$regs[3].$regs[2].$regs[1]");
else print("Invalid date format: $date");
๊ฒฐ๊ณผ => 17.11.1999
์ 4 :
์ฝ๋ => $joomin="711011-1234567";
if (ereg("([0-9]{2})([01]{1}[09]{1}[0-3]{1}[0-9]{1})-([12]{1}[0-9]{6})",$date, $regs))
print("Valid");
else print("Invalid format: $joomin");
int eregi(string givenPattern, string givenString, array matched);
- ereg์ 'case insensitive' ๋ฒ์ ผ
์ :
์ฝ๋ => $email="xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr";
eregi("(^[_\.0-9a-z-]+)@(([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}$)",$email,$matched);
while (list($a,$b)=each($matched))
if ($b) print("$a, $b <br>");
๊ฒฐ๊ณผ => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr
1, xs9_tx-abc.yyy_c
2, cne.kyungsung.ac.
3, ac.
4, kr
์ฝ๋ => eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email,$matched);
while (list($a,$b)=each($matched))
if ($b) print("$a, $b <br>");
๊ฒฐ๊ณผ => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr
1, ac.
string ereg_replace(string givenPattern, string replacementPattern, string givenString);
- givenString์์ givenPattern์ ๋ถํฉํ๋ ํ ์คํธ(matched text)๋ฅผ ์ฐพ์์,
replacementPattern์ผ๋ก ๋์ฒด
- givenPattern์ด "(ํจํด)"์ผ๋ก ๋ฌถ์ธ ๋ฌธ์์ด๋ค์ ํฌํจํ๊ณ ์์ผ๋ฉด, replacementPattern์๋ ์ด์ ๋์ํ๋ "\\digit(๋ฌธ์์ด)" ํํ์ ๋ฌธ์์ด๋ค์ ํฌํจํ๊ณ ์์ด์ผ ํ๋ค(digit๋ 0, 1, ... ,9 ์ค ํ๋). ๊ทธ๋ฆฌ๊ณ givenString์ "(ํจํด)"์ ์ด์ฉํด ์ฐพ์ ๊ฒฐ๊ณผ๋ค์ "\\digit(๋ฌธ์์ด)"์ ์๋ "๋ฌธ์์ด"๋ค๋ก ๋์ฒดํ๊ฒ ๋๋ค. "\\0" ๋ givenString ์ ์ฒด์ ๋ํด "(ํจํด)"์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฉํ ๋ ์ด์ฉ๋๋ค.
- ๋ณ๊ฒฝ๋ ๋ฌธ์์ด์ ๋ฆฌํด
- case sensitive
์ :
์ฝ๋ => $string = "This is a test";
print(ereg_replace(" is", " was",$string)); print("<br>");
print(ereg_replace("( )is","\\1was",$string)); print("<br>");
print(ereg_replace("(( )is)","\\2was",$string)); print("<br>");
print(ereg_replace("(( )is)(( )a)(( )test)", "\\1was\\2an\\3exam",$string));
๊ฒฐ๊ณผ => "This was a test";
"This was a test";
"This was a test";
"This was an exam";
์ 2 : redundant whitespace ์์ ๊ธฐ
์ฝ๋ => $str ="~ s/\s+/ /g";
$str = eregi_replace("[[:space:]]+", " ", $str);
print("$str<br>");
๊ฒฐ๊ณผ => ~ s/\s+/ /g
string eregi_replace(string givenPattern, string replacementPattern, string givenString);
- ereg_replace์ 'case insensitive' ๋ฒ์ ผ
์๋ณธ:์ ๋ก๋ณด๋์ฌ์ดํธ(?)
ํ ๋~....
์๋ฌธ php ๋ฉ๋ด์ผ ๋์๋ง:
http://www.php.net/distributions/manual/php_manual_en.chm
๋ชฉ์ฐจ->ํ ์ด๋ธ ์ค๋ธ ์ปจํ ์ธ ->Regular Expression Functions (Perl-Compatible)(์ ๊ท์..ใ )
ํ์ผ์ด๋ ๋ฌธ์์ด ๋ด์ ํฌํจ๋์ด ์๋ ํน๋ณํ ํจํด(๋๋ ํน๋ณํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฌธ์์ด)์ ๊ฒ์ํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ ์๋ ๋ค์ํ ํน์ ๋ฌธ์๋ค์ ์กฐํฉ์ ์ ๊ท์(regular expression)์ด๋ผ ํ๋ค. ์ ๊ท์์์์ ํน์ ๋ฌธ์(special character)๋ ๋ค์๊ณผ ๊ฐ๋ค.
(1) ^ (caret) : ๋ผ์ธ์ ์ฒ์์ด๋ ๋ฌธ์์ด์ ์ฒ์์ ํ์
์ : ^aaa (๋ฌธ์์ด์ ์ฒ์์ aaa๋ฅผ ํฌํจํ๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง)
(2) $ (dollar) : ๋ผ์ธ์ ๋์ด๋ ๋ฌธ์์ด์ ๋์ ํ์
์ : aaa$ (๋ฌธ์์ด์ ๋์ aaa๋ฅผ ํฌํจํ๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง)
(3) . (period) : ์์์ ํ ๋ฌธ์๋ฅผ ํ์
์ : ^a.c (๋ฌธ์์ด์ ์ฒ์์ abc, adc, aZc ๋ฑ์ ์ฐธ, aa ๋ ๊ฑฐ์ง)
a..b$ (๋ฌธ์์ด์ ๋์ aaab, abbb, azzb ๋ฑ์ ํฌํจํ๋ฉด ์ฐธ)
(4) [] (bracket) : ๋ฌธ์์ ์งํฉ์ด๋ ๋ฒ์๋ฅผ ๋ํ๋, ๋ ๋ฌธ์ ์ฌ์ด์ "-"๋ ๋ฒ์๋ฅผ ๋ํ๋
[]๋ด์์ "^"์ด ์ ํ๋๋ฉด not์ ๋ํ๋
์ด์ธ์๋ "๋ฌธ์ํด๋์ค"๋ฅผ ํฌํจํ๋ [:๋ฌธ์ํด๋์ค:]์ ํํ๊ฐ ์๋ค.
์ฌ๊ธฐ์์ "๋ฌธ์ํด๋์ค"์๋ alpha, blank, cntrl, digit, graph, lower,
print, space, uppper, xdigit๊ฐ ์๋ค.
์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ C์ธ์ด์ <ctype.h>๋ฅผ ์ฐธ์กฐํ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด [:digit:]๋ [0-9]์ [:alpha:]๋ [A-Za-z]์ ๋์ผํ๋ค.
์ด์ธ์ [:<:]์ [:>:]๋ ์ด๋ค ๋จ์ด(์ซ์, ์ํ๋ฒณ, '_'๋ก ๊ตฌ์ฑ๋จ)์ ์์๊ณผ ๋
์ ๋ํ๋ธ๋ค.
์ : [abc] (a, b, c ์ค ์ด๋ค ๋ฌธ์, "[a-c]."๊ณผ ๋์ผ)
[Yy] (Y ๋๋ y)
[A-Za-z0-9] (๋ชจ๋ ์ํ๋ฒณ๊ณผ ์ซ์)
[-A-Z]. ("-"(hyphen)๊ณผ ๋ชจ๋ ๋๋ฌธ์)
[^a-z] (์๋ฌธ์ ์ด์ธ์ ๋ฌธ์)
[^0-9] (์ซ์ ์ด์ธ์ ๋ฌธ์)
[[:digit:]] ([0-9]์ ๋์ผ)
(5) {} (brace) : {} ๋ด์ ์ซ์๋ ์ง์ ์ ์ ํ๋ฌธ์๊ฐ ๋ํ๋๋ ํ์ ๋๋ ๋ฒ์๋ฅผ ๋ํ๋
์ : a{3} ('a'์ 3๋ฒ ๋ฐ๋ณต์ธ aaa๋ง ํด๋น๋จ)
a{3,} ('a'๊ฐ 3๋ฒ ์ด์ ๋ฐ๋ณต์ธ aaa, aaaa, aaaa, ... ๋ฑ์ ๋ํ๋)
a{3,5} (aaa, aaaa, aaaaa ๋ง ํด๋น๋จ)
ab{2,3} (abb์ abbb ๋ง ํด๋น๋จ)
[0-9]{2} (๋ ์๋ฆฌ ์ซ์)
doc[7-9]{2} (doc77, doc87, doc97 ๋ฑ์ด ํด๋น)
[^Zz]{5} (Z์ z๋ฅผ ํฌํจํ์ง ์๋ 5๊ฐ์ ๋ฌธ์์ด, abcde, ttttt ๋ฑ์ด ํด๋น)
.{3,4}er ('er'์์ ์ธ ๊ฐ ๋๋ ๋ค ๊ฐ์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ด๋ฏ๋ก Peter, mother ๋ฑ์ด ํด๋น)
(6) * (asterisk) : "*" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab*c ('b'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก ac, ackdddd, abc, abbc, abbbbbbbc ๋ฑ)
* (์ ํ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ์์์ ๋ฌธ์์ด ๋ฐ ๊ณต๋ฐฑ ๋ฌธ์์ด๋ ํด๋น๋จ)
.* (์ ํ๋ฌธ์๊ฐ "."์ด๋ฏ๋ก ํ๋ ์ด์์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด, ๊ณต๋ฐฑ ๋ฌธ์์ด์ ์๋จ)
ab* ('b'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก a, accc, abb, abbbbbbb ๋ฑ)
a* ('a'๋ฅผ 0๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก k, kdd, sdfrrt, a, aaaa, abb, ๊ณต๋ฐฑ๋ฌธ์์ด ๋ฑ)
doc[7-9]* (doc7, doc777, doc778989, doc ๋ฑ์ด ํด๋น)
[A-Z].* (๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด)
like.* (์ง์ ์ ์ ํ๋ฌธ์๊ฐ '.'์ด๋ฏ๋ก like์ 0 ๋๋ ํ๋ ์ด์์ ๋ฌธ์๊ฐ ์ถ๊ฐ๋ ๋ฌธ์์ด์ด ๋จ, like, likely, liker, likelihood ๋ฑ)
(7) + (asterisk) : "+" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 1๋ฒ ์ด์ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab+c ('b'๋ฅผ 1๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก abc, abckdddd, abbc, abbbbbbbc ๋ฑ, ac๋ ์๋จ)
ab+ ('b'๋ฅผ 1๋ฒ ๋๋ ์ฌ๋ฌ๋ฒ ํฌํจํ๋ฏ๋ก ab, abccc, abb, abbbbbbb ๋ฑ)
like.+ (์ง์ ์ ์ ํ๋ฌธ์๊ฐ '.'์ด๋ฏ๋ก like์ ํ๋ ์ด์์ ๋ฌธ์๊ฐ ์ถ๊ฐ๋ ๋ฌธ์์ด์ด ๋จ, likely, liker, likelihood ๋ฑ, ๊ทธ๋ฌ๋ like๋ ํด๋น์๋จ)
[A-Z]+ (๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด)
(8) ? (asterisk) : "?" ์ง์ ์ ์ ํ๋ฌธ์๊ฐ 0๋ฒ ๋๋ 1๋ฒ ๋ํ๋๋ ๋ฌธ์์ด
์ : ab?c ('b'๋ฅผ 0๋ฒ ๋๋ 1๋ฒ ํฌํจํ๋ฏ๋ก abc, abcd ๋ง ํด๋น๋จ)
(9) () (parenthesis) : ()๋ ์ ๊ท์๋ด์์ ํจํด์ ๊ทธ๋ฃนํ ํ ๋ ์ฌ์ฉ
(10) | (bar) : or๋ฅผ ๋ํ๋
์ : a|b|c (a, b, c ์ค ํ๋, ์ฆ [a-c]์ ๋์ผํจ)
yes|Yes (yes๋ Yes ์ค ํ๋, [yY]es์ ๋์ผํจ)
korea|japan|chinese (korea, japan, chinese ์ค ํ๋)
(11) \ (backslash) : ์์์ ์ฌ์ฉ๋ ํน์ ๋ฌธ์๋ค์ ์ ๊ท์๋ด์์ ๋ฌธ์๋ฅผ ์ทจ๊ธํ๊ณ ์ถ์ ๋ '\'๋ฅผ ์ ํ์์ผ์ ์ฌ์ฉํ๋ฉด๋จ
์ : filename\.ext ("filename.ext"๋ฅผ ๋ํ๋)
[\?\[\\\]] ('?', '[', '\', ']' ์ค ํ๋)
์ ๊ท์์์๋ ์์์ ์ธ๊ธํ ํน์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์๋ค์ ์ผ๋ฐ ๋ฌธ์๋ก ์ทจ๊ธํจ
์ ๊ท์์ Unix์ ๋ํ์ ์ธ ์ ํธ๋ฆฌํฐ์ธ vi, emacs, ed, sed, awk, grep, egrep ๋ฑ์์ ์ฌ์ฉํ ์ ์๋ค. ๋ค์์ grep์์ ์ ๊ท์์ ํ์ฉํ ์๋ฅผ ๋ณด์ฌ ์ฃผ๊ณ ์๋ค.
(1) $ ๋ช ๋ น์ด | grep '์ ๊ท์'
<= ๋ช ๋ น์ด์ ๊ฒฐ๊ณผ๋ฅผ grep์ด ์ ๋ ฅ๋ฐ์ ์ ๊ท์์ ์ด์ฉํ์ฌ ํจํด์ ์ฐพ์๋
์ : $ who | grep 'hgkim' <= hgkim์ด๋ผ๋ ์ฌ์ฉ์๊ฐ login ํด ์๋์ง๋ฅผ ์์๋ด
$ ls -al | grep '^d.*' <= ls -al ์ ๊ฒฐ๊ณผ 'd'๋ก ์์ํ๋ ๋ผ์ธ(์ฆ ๋๋ ํ ๋ฆฌ๋ค)
๋ง์ ์ถ๋ ฅ
$ ls -al | grep '^d.*' <= ls -al ์ ๊ฒฐ๊ณผ 'd'๋ก ์์ํ๋ ๋ผ์ธ(์ฆ ๋๋ ํ ๋ฆฌ๋ค)
๋ง์ ์ถ๋ ฅ
$ ls -al | grep '^[^d]..x..x..x' <= ๋๋ ํ ๋ฆฌ๋ ์ ์ธํ๊ณ ("[^d]") ๋๊ตฌ๋
์คํ๊ฐ๋ฅํ ํ์ผ("..x..x..x")๋ค ์ฐพ๊ธฐ
(2) $ grep '์ ๊ท์' ํ์ผ์ด๋ฆ
<= ํ์ผ์ ์ ๋ ฅ๋ฐ์ ์ ๊ท์์ ์ด์ฉํ์ฌ ํจํด์ ์ฐป์๋
์: $ grep 'telnet' /etc/inetd.conf
์ด์ธ์ ๋ช ๋ น์ด๋ค๋ grep๊ณผ ์ ์ฌํ ํํ๋ก ์ด์ฉ๋๋ค. ๋ฐ๋ผ์ ์ ๊ท์์ ์ ์ด์ฉํ๋ฉด ์ ๋์ค์ ํ์ฉ์ด ๋ฐฐ๊ฐ ๋ ๊ฒ์ด๋ค.
PHP์์๋ ์ ๊ท์๊ณผ ๊ด๋ จํ์ฌ ๋ค์์ ๋ค๊ฐ์ง ํจ์๋ฅผ ์ ๊ณตํ๋ค.
int ereg(string givenPattern, string givenString, array matched);
- givenString์ "string1stringAstring2stringBstring3 ... string9stringI" ๋ก ์ฃผ์ด์ ธ ์๋ค๊ณ ํ์. ์ด๋ stringA, stringB, ... , stringI๋ NULL ์ด์ด๋ ์๊ด์ด ์๋ค(์ฆ givenString์ "string1string2string3 ... string9" ์ธ ๊ฒฝ์ฐ์).
- givenString์ด ์์ ๊ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ,
givenPattern์ "(pattern1)stringA(pattern2)stringB(pattern3) ... (pattern9)stringI"๋ก ์ ๋ ฅํ์ฌ์ผ ํ๋ค. ์ฆ pattern1, pattern2, ..., pattern9๋ ๊ฐ๊ฐ string1, string2, ... , string9์์ ์ฐพ๊ณ ์ํ๋ ์ ๊ท์์ธ ๊ฒ์ด๋ค.
- ์ด๋ pattern1์ด string1์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[1]์ ์ ์ฅ๋๊ณ , pattern2๊ฐ string2์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[2]์ ์ ์ฅ๋๊ณ , ..., pattern9๊ฐ string9์์ ๋ฐ๊ฒฌํ ํจํด์ $matched[9]์ ์ ์ฅ๋๋ค. PHP3์ ๊ฒฝ์ฐ ereg์์๋ ์ต๋ 9๊ฐ ๊น์ง์ pattern์ ์ฐพ์ ์ ์๋๋ก ์ค์ ๋์ด ์์์ ์ ์ํ์.
- ๊ทธ๋ฆฌ๊ณ $matched[0]์๋ $matched[1]stringA$matched[2]stringB ... $matched[9]stringI๊ฐ ์ ์ฅ๋๋ค.
- ereg๊ฐ ๋ฐํํ๋ ๊ฐ์ $matched[0]์ ์ ์ฅ๋ ๋ฌธ์์ด์ ๊ฐ์์ด๋ค.
- ereg๋ case sensitive
- eregi๋ case insensitive
์1 :
์ฝ๋ => print(ereg ("(.*)ef([abc].*)","abcdefabc",$matched));
print("<br>");
while (list($a,$b)=each($matched))
if ($b)
print("$a, $b <br>");
๊ฒฐ๊ณผ => 9
0, abcdefabc
1, abcd
2, abc
์2 :
์ฝ๋ => print(ereg ("(.*)d(.*)e(.*)qrs(.*)","abcdefghijklmnopqrstuvwxyz",$matched));
print("<br>");
while (list($a,$b)=each($matched))
if ($b)
print("$a, $b <br>");
๊ฒฐ๊ณผ => 26
0, abcdefghijklmnopqrstuvwxyz
1, abc
3, fghijklmnop
4, tuvwxyz
์ 3 :
์ฝ๋ => $date="1999-11-17";
if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
print("$regs[3].$regs[2].$regs[1]");
else print("Invalid date format: $date");
๊ฒฐ๊ณผ => 17.11.1999
์ 4 :
์ฝ๋ => $joomin="711011-1234567";
if (ereg("([0-9]{2})([01]{1}[09]{1}[0-3]{1}[0-9]{1})-([12]{1}[0-9]{6})",$date, $regs))
print("Valid");
else print("Invalid format: $joomin");
int eregi(string givenPattern, string givenString, array matched);
- ereg์ 'case insensitive' ๋ฒ์ ผ
์ :
์ฝ๋ => $email="xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr";
eregi("(^[_\.0-9a-z-]+)@(([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}$)",$email,$matched);
while (list($a,$b)=each($matched))
if ($b) print("$a, $b <br>");
๊ฒฐ๊ณผ => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr
1, xs9_tx-abc.yyy_c
2, cne.kyungsung.ac.
3, ac.
4, kr
์ฝ๋ => eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email,$matched);
while (list($a,$b)=each($matched))
if ($b) print("$a, $b <br>");
๊ฒฐ๊ณผ => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr
1, ac.
string ereg_replace(string givenPattern, string replacementPattern, string givenString);
- givenString์์ givenPattern์ ๋ถํฉํ๋ ํ ์คํธ(matched text)๋ฅผ ์ฐพ์์,
replacementPattern์ผ๋ก ๋์ฒด
- givenPattern์ด "(ํจํด)"์ผ๋ก ๋ฌถ์ธ ๋ฌธ์์ด๋ค์ ํฌํจํ๊ณ ์์ผ๋ฉด, replacementPattern์๋ ์ด์ ๋์ํ๋ "\\digit(๋ฌธ์์ด)" ํํ์ ๋ฌธ์์ด๋ค์ ํฌํจํ๊ณ ์์ด์ผ ํ๋ค(digit๋ 0, 1, ... ,9 ์ค ํ๋). ๊ทธ๋ฆฌ๊ณ givenString์ "(ํจํด)"์ ์ด์ฉํด ์ฐพ์ ๊ฒฐ๊ณผ๋ค์ "\\digit(๋ฌธ์์ด)"์ ์๋ "๋ฌธ์์ด"๋ค๋ก ๋์ฒดํ๊ฒ ๋๋ค. "\\0" ๋ givenString ์ ์ฒด์ ๋ํด "(ํจํด)"์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฉํ ๋ ์ด์ฉ๋๋ค.
- ๋ณ๊ฒฝ๋ ๋ฌธ์์ด์ ๋ฆฌํด
- case sensitive
์ :
์ฝ๋ => $string = "This is a test";
print(ereg_replace(" is", " was",$string)); print("<br>");
print(ereg_replace("( )is","\\1was",$string)); print("<br>");
print(ereg_replace("(( )is)","\\2was",$string)); print("<br>");
print(ereg_replace("(( )is)(( )a)(( )test)", "\\1was\\2an\\3exam",$string));
๊ฒฐ๊ณผ => "This was a test";
"This was a test";
"This was a test";
"This was an exam";
์ 2 : redundant whitespace ์์ ๊ธฐ
์ฝ๋ => $str ="~ s/\s+/ /g";
$str = eregi_replace("[[:space:]]+", " ", $str);
print("$str<br>");
๊ฒฐ๊ณผ => ~ s/\s+/ /g
string eregi_replace(string givenPattern, string replacementPattern, string givenString);
- ereg_replace์ 'case insensitive' ๋ฒ์ ผ
728x90
LIST
'PHP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
PHP์ค์ฟจ์์ ๊ต๋ณต์ด ๋์ฐฉํ์ด์ ^^ (0) | 2008.07.14 |
---|---|
PHP ๋น๊ต์ฐ์ฐ์ PHP4์ด์๋ถํฐ ๋์จ๊ฒ. (0) | 2008.06.17 |
PHP ์๋ฒ๊ฐ์ฒด $_SERVER[] (0) | 2008.05.20 |
CutString ํจ์ (0) | 2008.04.30 |
PHP messagebox ํจ์ (0) | 2008.04.30 |
๋๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- JSON
- JSTL
- EL
- ์๋ฐ์คํฌ๋ฆฝํธ
- MySQL
- ์น์์ด์ ์
- ๋ณต๊ทผ์ด๋
- ๋์ค
- JSP
- ๋ฉ๋ฐฐํ
- Ajax
- 8๋ง์ผ
- ๋ด๋๋ด์ฐ
- jQuery
- ์นด๋ฐ์จ๋ผ์ธ
- ์๋ฆฌ
- I Don't Care
- asp
- Java
- ์ธํจ์ด
- ์๋ธ๋ฆฟ
- php
- 2ne1
- Servlet
- JavaScript
- ํจ์
- ์์์ฌ์ด๋
- JS
- ๊ธฐํ
- ๊ฒฝ์ ์ฉ์ด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
๊ธ ๋ณด๊ดํจ
250x250