<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Linux%2FRegularExpression</id>
	<title>Linux/RegularExpression - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Linux%2FRegularExpression"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;action=history"/>
	<updated>2026-05-15T15:02:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=86954&amp;oldid=prev</id>
		<title>Maintenance script: Quality repair v1</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=86954&amp;oldid=prev"/>
		<updated>2026-03-27T04:58:16Z</updated>

		<summary type="html">&lt;p&gt;Quality repair v1&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:58, 27 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* . (dot) : 어떤 문자든 기호든 해당된다. 03.19.76 하면 03/19/76,03-19-76,03.19.76 등이 해당된다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* . (dot) : 어떤 문자든 기호든 해당된다. 03.19.76 하면 03/19/76,03-19-76,03.19.76 등이 해당된다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* |(OR) : 여러개의 식을 한개의 식으로 합성할 수 있다. []안에서는 | 이 문자를 가리킬 뿐이다. gr&amp;amp;#91;ea&amp;amp;#93;y, grey|gray,gr(a|e)y 는 같다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* |(OR) : 여러개의 식을 한개의 식으로 합성할 수 있다. []안에서는 | 이 문자를 가리킬 뿐이다. gr&amp;amp;#91;ea&amp;amp;#93;y, grey|gray,gr(a|e)y 는 같다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* ()(parentheses) : a(a|b)cde 하면 aacde, abcde 둘다 해당 된다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a|&lt;/del&gt;b하면 | 를 문자로 처리 하지만 (a|b) 로 ()를 씌어 주면 |를 OR로 해석한다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* ()(parentheses) : a(a|b)cde 하면 aacde, abcde 둘다 해당 된다. b하면 | 를 문자로 처리 하지만 (a|b) 로 ()를 씌어 주면 |를 OR로 해석한다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* -i(option) : 대소문자 구분을 안한다. 예)egrep -i &amp;#039;^(From|Subject|Date): &amp;#039; mailbox&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* -i(option) : 대소문자 구분을 안한다. 예)egrep -i &amp;#039;^(From|Subject|Date): &amp;#039; mailbox&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* \&amp;lt; : 단어가 시작되는 지점&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* \&amp;lt; : 단어가 시작되는 지점&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=84596&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0002 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=84596&amp;oldid=prev"/>
		<updated>2026-03-27T00:16:07Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0002 pages from live compare&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;amp;diff=84596&amp;amp;oldid=34197&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=34197&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Linux/RegularExpression&amp;diff=34197&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
= 소개 =&lt;br /&gt;
리눅스와 같은 유닉스의 클론 운영체제를 하다보면 반드시 익혀야 할 것들이 몇가지 존재한다.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;정규식&amp;#039;&amp;#039;&amp;#039;이라는 것도 그중의 한가지이다.&lt;br /&gt;
대충 용도를 적어보자면 MS시스템에서의 *(asterix)문자와 같은 용도라고 보면된다.&lt;br /&gt;
&lt;br /&gt;
거의 대부분의 유닉스 애플리케이션은 정규식의 사용을 지원한다. 일단 배우면 쓰임이 대단하지만&lt;br /&gt;
익히기 귀찮다. -.-;&lt;br /&gt;
&lt;br /&gt;
= Mastering Regular Expressions, 2nd Edition =&lt;br /&gt;
== Ch1 Introduction to Regular Expressions ==&lt;br /&gt;
* ^(caret) : 시작을 의미함. ^cat은 cat으로 시작하는 문자...(cats,cater,caterer...).in the line rather real text&lt;br /&gt;
* $(dollar) : 끝을 의미함. cat$은 cat으로 끝나는 문자 ...(blackcat, whitecat, ....) in the line rather real text&lt;br /&gt;
* [](Character Class) : seper&amp;amp;#91;ae&amp;amp;#93;te 하면 seperate, seperete 모두를 포함한다.&lt;br /&gt;
** - (dash) : 범위를 나타낸다.([]안에서만.. 밖에서는 &amp;#039;-&amp;#039;자체를 가리킨다) [[1-6]] 1~6까지&lt;br /&gt;
** ^ : [] 안에서는 반대를 뜻한다. [[^1-6]] 은 1~6이 아닌것들을 의미..&lt;br /&gt;
* . (dot) : 어떤 문자든 기호든 해당된다. 03.19.76 하면 03/19/76,03-19-76,03.19.76 등이 해당된다.&lt;br /&gt;
* |(OR) : 여러개의 식을 한개의 식으로 합성할 수 있다. []안에서는 | 이 문자를 가리킬 뿐이다. gr&amp;amp;#91;ea&amp;amp;#93;y, grey|gray,gr(a|e)y 는 같다.&lt;br /&gt;
* ()(parentheses) : a(a|b)cde 하면 aacde, abcde 둘다 해당 된다. [[a|b]]하면 | 를 문자로 처리 하지만 (a|b) 로 ()를 씌어 주면 |를 OR로 해석한다. &lt;br /&gt;
* -i(option) : 대소문자 구분을 안한다. 예)egrep -i &amp;#039;^(From|Subject|Date): &amp;#039; mailbox&lt;br /&gt;
* \&amp;lt; : 단어가 시작되는 지점&lt;br /&gt;
* \&amp;gt; : 단어가 끝나는 지점&lt;br /&gt;
* ? : one optional, ? 앞에 있는 글자가 있어도 되고 없어도 된다. colou?r 하면 color, colur 모두 된다. &lt;br /&gt;
* * : ? 가 여러개(임의의 개수) 있는 효과 (없는것도 포함)&lt;br /&gt;
* + : ? 가 여러개(임의의 개수) 있는 효과&lt;br /&gt;
= 정규식 펌 내용 =&lt;br /&gt;
 (1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시&lt;br /&gt;
 &lt;br /&gt;
 예 : ^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓)&lt;br /&gt;
 &lt;br /&gt;
 (2) $ (dollar) : 라인의 끝이나 문자열의 끝을 표시&lt;br /&gt;
 &lt;br /&gt;
 예 : aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓)&lt;br /&gt;
 &lt;br /&gt;
 (3) . (period) : 임의의 한 문자를 표시&lt;br /&gt;
 &lt;br /&gt;
 예 : ^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓)&lt;br /&gt;
 &lt;br /&gt;
 a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참)&lt;br /&gt;
 &lt;br /&gt;
 (4) [] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 &amp;quot;-&amp;quot;는 범위를 나타냄&lt;br /&gt;
 &lt;br /&gt;
 []내에서 &amp;quot;^&amp;quot;이 선행되면 not을 나타냄&lt;br /&gt;
 &lt;br /&gt;
 이외에도 &amp;quot;문자클래스&amp;quot;를 포함하는 [:문자클래스:]의 형태가 있다.&lt;br /&gt;
 &lt;br /&gt;
 여기에서 &amp;quot;문자클래스&amp;quot;에는 alpha, blank, cntrl, digit, graph, lower,&lt;br /&gt;
 &lt;br /&gt;
 print, space, uppper, xdigit가 있다.&lt;br /&gt;
 &lt;br /&gt;
 이에 대한 자세한 내용은 C언어의 &amp;amp;lt;ctype.h&amp;amp;gt;를 참조하면 된다.&lt;br /&gt;
 &lt;br /&gt;
 예를 들어 [:digit:]는 [0-9]와 [:alpha:]는 [A-Za-z]와 동일하다.&lt;br /&gt;
 &lt;br /&gt;
 이외에 [:&amp;amp;lt;:]와 [:&amp;amp;gt;:]는 어떤 단어(숫자, 알파벳, &amp;#039;_&amp;#039;로 구성됨)의 시작과 끝&lt;br /&gt;
 &lt;br /&gt;
 을 나타낸다.&lt;br /&gt;
 &lt;br /&gt;
 예 : [abc] (a, b, c 중 어떤 문자, &amp;quot;[a-c].&amp;quot;과 동일)&lt;br /&gt;
 &lt;br /&gt;
 [Yy] (Y 또는 y)&lt;br /&gt;
 &lt;br /&gt;
 [A-Za-z0-9] (모든 알파벳과 숫자)&lt;br /&gt;
 &lt;br /&gt;
 [-A-Z]. (&amp;quot;-&amp;quot;(hyphen)과 모든 대문자)&lt;br /&gt;
 &lt;br /&gt;
 [^a-z] (소문자 이외의 문자)&lt;br /&gt;
 &lt;br /&gt;
 [^0-9] (숫자 이외의 문자)&lt;br /&gt;
 &lt;br /&gt;
 [[:digit:]] ([0-9]와 동일)&lt;br /&gt;
 &lt;br /&gt;
 (5) {} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타냄&lt;br /&gt;
 &lt;br /&gt;
 예 : a{3} (&amp;#039;a&amp;#039;의 3번 반복인 aaa만 해당됨)&lt;br /&gt;
 &lt;br /&gt;
 a{3,} (&amp;#039;a&amp;#039;가 3번 이상 반복인 aaa, aaaa, aaaa, ... 등을 나타냄)&lt;br /&gt;
 &lt;br /&gt;
 a{3,5} (aaa, aaaa, aaaaa 만 해당됨)&lt;br /&gt;
 &lt;br /&gt;
 ab{2,3} (abb와 abbb 만 해당됨)&lt;br /&gt;
 &lt;br /&gt;
 [0-9]{2} (두 자리 숫자)&lt;br /&gt;
 &lt;br /&gt;
 doc[7-9]{2} (doc77, doc87, doc97 등이 해당)&lt;br /&gt;
 &lt;br /&gt;
 [^Zz]{5} (Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당)&lt;br /&gt;
 &lt;br /&gt;
 .{3,4}er (&amp;#039;er&amp;#039;앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)&lt;br /&gt;
 &lt;br /&gt;
 (6) * (asterisk) : &amp;quot;*&amp;quot; 직전의 선행문자가 0번 또는 여러번 나타나는 문자열&lt;br /&gt;
 &lt;br /&gt;
 예 : ab*c (&amp;#039;b&amp;#039;를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등)&lt;br /&gt;
 &lt;br /&gt;
 * (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열도 해당됨)&lt;br /&gt;
 &lt;br /&gt;
 .* (선행문자가 &amp;quot;.&amp;quot;이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨)&lt;br /&gt;
 &lt;br /&gt;
 ab* (&amp;#039;b&amp;#039;를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등)&lt;br /&gt;
 &lt;br /&gt;
 a* (&amp;#039;a&amp;#039;를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등)&lt;br /&gt;
 &lt;br /&gt;
 doc[7-9]* (doc7, doc777, doc778989, doc 등이 해당)&lt;br /&gt;
 &lt;br /&gt;
 [A-Z].* (대문자로만 이루어진 문자열)&lt;br /&gt;
 &lt;br /&gt;
 like.* (직전의 선행문자가 &amp;#039;.&amp;#039;이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등)&lt;br /&gt;
 &lt;br /&gt;
 (7) + (asterisk) : &amp;quot;+&amp;quot; 직전의 선행문자가 1번 이상 나타나는 문자열&lt;br /&gt;
 &lt;br /&gt;
 예 : ab+c (&amp;#039;b&amp;#039;를 1번 또는 여러번 포함하므로 abc, abckdddd, abbc, abbbbbbbc 등, ac는 안됨)&lt;br /&gt;
 &lt;br /&gt;
 ab+ (&amp;#039;b&amp;#039;를 1번 또는 여러번 포함하므로 ab, abccc, abb, abbbbbbb 등)&lt;br /&gt;
 &lt;br /&gt;
 like.+ (직전의 선행문자가 &amp;#039;.&amp;#039;이므로 like에 하나 이상의 문자가 추가된 문자열이 됨, likely, liker, likelihood 등, 그러나 like는 해당안됨)&lt;br /&gt;
 &lt;br /&gt;
 [A-Z]+ (대문자로만 이루어진 문자열)&lt;br /&gt;
 &lt;br /&gt;
 (8) ? (asterisk) : &amp;quot;?&amp;quot; 직전의 선행문자가 0번 또는 1번 나타나는 문자열&lt;br /&gt;
 &lt;br /&gt;
 예 : ab?c (&amp;#039;b&amp;#039;를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨)&lt;br /&gt;
 &lt;br /&gt;
 (9) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용&lt;br /&gt;
 &lt;br /&gt;
 (10) | (bar) : or를 나타냄&lt;br /&gt;
 &lt;br /&gt;
 예 : a|b|c (a, b, c 중 하나, 즉 [a-c]와 동일함)&lt;br /&gt;
 &lt;br /&gt;
 yes|Yes (yes나 Yes 중 하나, [yY]es와 동일함)&lt;br /&gt;
 &lt;br /&gt;
 korea|japan|chinese (korea, japan, chinese 중 하나)&lt;br /&gt;
 &lt;br /&gt;
 (11) \ (backslash) : 위에서 사용된 특수 문자들을 정규식내에서 문자를 취급하고 싶을 때 &amp;#039;\&amp;#039;를 선행시켜서 사용하면됨&lt;br /&gt;
 &lt;br /&gt;
 예 : filename\.ext (&amp;quot;filename.ext&amp;quot;를 나타냄)&lt;br /&gt;
 &lt;br /&gt;
 [\?\[\\\]] (&amp;#039;?&amp;#039;, &amp;#039;[&amp;#039;, &amp;#039;\&amp;#039;, &amp;#039;]&amp;#039; 중 하나)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 정규식에서는 위에서 언급한 특수 문자를 제외한 나머지 문자들은 일반 문자로 취급함&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 정규식은 Unix의 대표적인 유틸리티인 vi, emacs, ed, sed, awk, grep, egrep 등에서 사용할 수 있다. 다음은 grep에서 정규식을 활용한 예를 보여 주고 있다.&lt;br /&gt;
 &lt;br /&gt;
 (1) $ 명령어 | grep &amp;#039;정규식&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;= 명령어의 결과를 grep이 입력받아 정규식을 이용하여 패턴을 찾아냄&lt;br /&gt;
 &lt;br /&gt;
 예 : $ who | grep &amp;#039;hgkim&amp;#039; &amp;amp;lt;= hgkim이라는 사용자가 login 해 있는지를 알아봄&lt;br /&gt;
 &lt;br /&gt;
 $ ls -al | grep &amp;#039;^d.*&amp;#039; &amp;amp;lt;= ls -al 의 결과 &amp;#039;d&amp;#039;로 시작하는 라인(즉 디렉토리들)&lt;br /&gt;
 &lt;br /&gt;
 만을 출력&lt;br /&gt;
 &lt;br /&gt;
 $ ls -al | grep &amp;#039;^d.*&amp;#039; &amp;amp;lt;= ls -al 의 결과 &amp;#039;d&amp;#039;로 시작하는 라인(즉 디렉토리들)&lt;br /&gt;
 &lt;br /&gt;
 만을 출력&lt;br /&gt;
 &lt;br /&gt;
 $ ls -al | grep &amp;#039;^[^d]..x..x..x&amp;#039; &amp;amp;lt;= 디렉토리는 제외하고(&amp;quot;[^d]&amp;quot;) 누구나&lt;br /&gt;
 &lt;br /&gt;
 실행가능한 파일(&amp;quot;..x..x..x&amp;quot;)들 찾기&lt;br /&gt;
 &lt;br /&gt;
 (2) $ grep &amp;#039;정규식&amp;#039; 파일이름&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;= 파일을 입력받아 정규식을 이용하여 패턴을 찻아냄&lt;br /&gt;
 &lt;br /&gt;
 예: $ grep &amp;#039;telnet&amp;#039; /etc/inetd.conf&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 이외의 명령어들도 grep과 유사한 형태로 이용된다. 따라서 정규식을 잘 이용하면 유닉스의 활용이 배가 될 것이다.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 PHP에서는 정규식과 관련하여 다음의 네가지 함수를 제공한다.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 int ereg(string givenPattern, string givenString, array matched);&lt;br /&gt;
 &lt;br /&gt;
 - givenString을 &amp;quot;string1stringAstring2stringBstring3 ... string9stringI&amp;quot; 로 주어져 있다고 하자. 이때 stringA, stringB, ... , stringI는 NULL 이어도 상관이 없다(즉 givenString은 &amp;quot;string1string2string3 ... string9&amp;quot; 인 경우임).&lt;br /&gt;
 &lt;br /&gt;
 - givenString이 위와 같이 주어진 경우,&lt;br /&gt;
 &lt;br /&gt;
 givenPattern은 &amp;quot;(pattern1)stringA(pattern2)stringB(pattern3) ... (pattern9)stringI&amp;quot;로 입력하여야 한다. 즉 pattern1, pattern2, ..., pattern9는 각각 string1, string2, ... , string9에서 찾고자하는 정규식인 것이다.&lt;br /&gt;
 &lt;br /&gt;
 - 이때 pattern1이 string1에서 발견한 패턴은 $matched[1]에 저장되고, pattern2가 string2에서 발견한 패턴은 $matched[2]에 저장되고, ..., pattern9가 string9에서 발견한 패턴은 $matched[9]에 저장된다. PHP3의 경우 ereg에서는 최대 9개 까지의 pattern을 찾을 수 있도록 설정되어 있음에 유의하자.&lt;br /&gt;
 &lt;br /&gt;
 - 그리고 $matched[0]에는 $matched[1]stringA$matched[2]stringB ... $matched[9]stringI가 저장된다.&lt;br /&gt;
 &lt;br /&gt;
 - ereg가 반환하는 값은 $matched[0]에 저장된 문자열의 개수이다.&lt;br /&gt;
 &lt;br /&gt;
 - ereg는 case sensitive&lt;br /&gt;
 &lt;br /&gt;
 - eregi는 case insensitive&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 예1 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; print(ereg (&amp;quot;(.*)ef([abc].*)&amp;quot;,&amp;quot;abcdefabc&amp;quot;,$matched));&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 while (list($a,$b)=each($matched))&lt;br /&gt;
 &lt;br /&gt;
 if ($b)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;$a, $b &amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; 9&lt;br /&gt;
 &lt;br /&gt;
 0, abcdefabc&lt;br /&gt;
 &lt;br /&gt;
 1, abcd&lt;br /&gt;
 &lt;br /&gt;
 2, abc&lt;br /&gt;
 &lt;br /&gt;
 예2 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; print(ereg (&amp;quot;(.*)d(.*)e(.*)qrs(.*)&amp;quot;,&amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;,$matched));&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 while (list($a,$b)=each($matched))&lt;br /&gt;
 &lt;br /&gt;
 if ($b)&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;$a, $b &amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; 26&lt;br /&gt;
 &lt;br /&gt;
 0, abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 1, abc&lt;br /&gt;
 &lt;br /&gt;
 3, fghijklmnop&lt;br /&gt;
 &lt;br /&gt;
 4, tuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 예 3 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; $date=&amp;quot;1999-11-17&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 if (ereg(&amp;quot;([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})&amp;quot;, $date, $regs))&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;$regs[3].$regs[2].$regs[1]&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 else print(&amp;quot;Invalid date format: $date&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; 17.11.1999&lt;br /&gt;
 &lt;br /&gt;
 예 4 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; $joomin=&amp;quot;711011-1234567&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 if (ereg(&amp;quot;([0-9]{2})([01]{1}[09]{1}[0-3]{1}[0-9]{1})-([12]{1}[0-9]{6})&amp;quot;,$date, $regs))&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;Valid&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 else print(&amp;quot;Invalid format: $joomin&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 int eregi(string givenPattern, string givenString, array matched);&lt;br /&gt;
 &lt;br /&gt;
 - ereg의 &amp;#039;case insensitive&amp;#039; 버젼&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 예 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; $email=&amp;quot;xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 eregi(&amp;quot;(^[_\.0-9a-z-]+)@(([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}$)&amp;quot;,$email,$matched);&lt;br /&gt;
 &lt;br /&gt;
 while (list($a,$b)=each($matched))&lt;br /&gt;
 &lt;br /&gt;
 if ($b) print(&amp;quot;$a, $b &amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr&lt;br /&gt;
 &lt;br /&gt;
 1, xs9_tx-abc.yyy_c&lt;br /&gt;
 &lt;br /&gt;
 2, cne.kyungsung.ac.&lt;br /&gt;
 &lt;br /&gt;
 3, ac.&lt;br /&gt;
 &lt;br /&gt;
 4, kr&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; eregi(&amp;quot;^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$&amp;quot;,$email,$matched);&lt;br /&gt;
 &lt;br /&gt;
 while (list($a,$b)=each($matched))&lt;br /&gt;
 &lt;br /&gt;
 if ($b) print(&amp;quot;$a, $b &amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr&lt;br /&gt;
 &lt;br /&gt;
 1, ac.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 string ereg_replace(string givenPattern, string replacementPattern, string givenString);&lt;br /&gt;
 &lt;br /&gt;
 - givenString에서 givenPattern에 부합하는 텍스트(matched text)를 찾아서,&lt;br /&gt;
 &lt;br /&gt;
 replacementPattern으로 대체&lt;br /&gt;
 &lt;br /&gt;
 - givenPattern이 &amp;quot;(패턴)&amp;quot;으로 묶인 문자열들을 포함하고 있으면, replacementPattern에는 이에 대응하는 &amp;quot;\\digit(문자열)&amp;quot; 형태의 문자열들을 포함하고 있어야 한다(digit는 0, 1, ... ,9 중 하나). 그리고 givenString은 &amp;quot;(패턴)&amp;quot;을 이용해 찾은 결과들을 &amp;quot;\\digit(문자열)&amp;quot;에 있는 &amp;quot;문자열&amp;quot;들로 대체하게 된다. &amp;quot;\\0&amp;quot; 는 givenString 전체에 대해 &amp;quot;(패턴)&amp;quot;의 결과를 적용할 때 이용된다.&lt;br /&gt;
 &lt;br /&gt;
 - 변경된 문자열을 리턴&lt;br /&gt;
 &lt;br /&gt;
 - case sensitive&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 예 :&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; $string = &amp;quot;This is a test&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 print(ereg_replace(&amp;quot; is&amp;quot;, &amp;quot; was&amp;quot;,$string)); print(&amp;quot;&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 print(ereg_replace(&amp;quot;( )is&amp;quot;,&amp;quot;\\1was&amp;quot;,$string)); print(&amp;quot;&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 print(ereg_replace(&amp;quot;(( )is)&amp;quot;,&amp;quot;\\2was&amp;quot;,$string)); print(&amp;quot;&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 print(ereg_replace(&amp;quot;(( )is)(( )a)(( )test)&amp;quot;, &amp;quot;\\1was\\2an\\3exam&amp;quot;,$string));&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; &amp;quot;This was a test&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;This was a test&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;This was a test&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;This was an exam&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 예 2 : redundant whitespace 없애기&lt;br /&gt;
 &lt;br /&gt;
 코드 =&amp;amp;gt; $str =&amp;quot;~ s/\s+/ /g&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 $str = eregi_replace(&amp;quot;[[:space:]]+&amp;quot;, &amp;quot; &amp;quot;, $str);&lt;br /&gt;
 &lt;br /&gt;
 print(&amp;quot;$str&amp;amp;lt;br&amp;amp;gt;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 결과 =&amp;amp;gt; ~ s/\s+/ /g&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 string eregi_replace(string givenPattern, string replacementPattern, string givenString);&lt;br /&gt;
 &lt;br /&gt;
 - ereg_replace의 &amp;#039;case insensitive&amp;#039; 버젼&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>