Skip to content

Diff of RegularExpressions

Changes between revision 0 - and revision 1 - 정규 표현식 공부 페이지 추가
--- RegularExpressions
+++ RegularExpressions
@@ -1,1 +1,256 @@
+= RegularExpressions
 
+== 참고 ==
+ * https://opentutorials.org/course/909/5143
+ * http://zvon.org/
+ * https://www.regexpal.com/
+
+
+== 문법 ==
+ * 특정 케이스로 시작 : `^`
+  * Source [[[#!Text 
+who is who 
+]]]
+  * `^who` : who로 시작
+  * `^w` : w로 시작
+  * `^[a-zA-Z]` : 영문으로 시작
+  * `^[0-9]` : 숫자로 시작
+
+
+
+ * 특정 케이스로 끝 : `$`
+  * Source [[[#!Text 
+who is who 
+]]]
+  * `who$` : who 문자로 끝
+  * `[a-zA-Z]$` : 영문으로 끝
+  * `[0-9]$` : 숫자로 끝
+
+
+
+ * 이스케이프 : `\`
+  * Source [[[#!Text 
+$12$ \-\ $25$
+]]]
+  *  `\$` : $ 문자 찾기
+  *  `^\$` : $ 문자로 시작
+  *  `\$$` : $ 문자로 끝
+  *  `\\` : \ 문자 찾기
+
+
+
+ * 모든 문자 : `.`
+  * Source [[[#!Text 
+Regular expressions are powerful!!!
+O.K.
+]]]
+  * `.` : 아무 문자
+  * `...` : 아무 문자 3자리
+  * `\..\.` : `.문자.` 케이스 찾기
+
+
+
+ * 후보군 : `[]`
+  * `[]`는 문자 하나를 의미
+  * Source [[[#!Text 
+How do you do?
+]]]
+  * `[oyu]` : o,y,u 문자 찾기
+  * `[dH].` : `d 또는 H` + 문자 하나
+  * `[owy][yow].` : `o 또는 w 또는 y` + `y 또는 o 또는 w`
+
+
+
+ * 범위 : `-`
+  * `[]`는 문자 하나를 의미
+  * Source [[[#!Text 
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+abcdefghijklmnopqrstuvwxyz
+0123456789
+]]]
+  * `[C-K]` : 대문자 C~K 문자 찾기
+  * `[CDEFGHIJK]` : `C,D,E,F,G,H,I,J,K` 문자 찾기
+  * `[a-d]` : `a,b,c,d` 문자 찾기
+  * `[2-6]` : `2,3,4,5,6` 문자 찾기
+  * `[C-Ka-d2-6]` : `C~K, a~d, 2~6` 문자 찾기
+
+
+
+ * 부정 : `[^]`
+  * `^`이 `[]` 안에 있으면 not의 의미를 가짐
+  * Source [[[#!Text 
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+abcdefghijklmnopqrstuvwxyz
+0123456789
+]]]
+  * `[^CDghi45]` : `C,D,g,h,i,4,5`이 아닌 문자
+  * `[^W-Z]` : `W, X, Y, Z`가 아닌 문자
+
+
+
+ * 서브패턴 : `(|)`
+  * Source [[[#!Text 
+Monday Tuesday Friday
+]]]
+  * `(on|ues|rida)` : `on, ues, rida` 문자 찾기
+  * `(Mon|Tues|Fri)day` : 중복으로 들어가는 day를 빼서 패턴을 간소화 시킴.
+  * `..(id|esd|nd)ay` : 중복으로 들어가는 day를 빼서 패턴을 간소화 시킴.
+
+
+
+ * 수량자 : `*, +, ?`
+  * `*` : `*` 앞에 등장하는 패턴이 0 ~ 여러개(있을 수 있고 없을 수 있다)
+  * `+` : `+` 앞에 등장하는 패턴이 1 ~ 여러개(하나 이상이 있어야 한다)
+  * `?` : `?` 앞에 등장하는 패턴이 0 ~ 1(없거나 하나만 있어야 한다)
+  * Source [[[#!Text 
+aabc abc bc
+-@- *** -- "*" -- *** -@-
+-@@@- * ** - - "*" -- * ** -@@@-
+--XX-@-XX-@@-XX-@@@-XX-@@@@-XX-@@-@@-
+]]]
+  * `a*b` : b앞에 a가 있거나 없는 케이스
+  * `a+b` : b앞에 a가 하나 이상 있는 케이스
+  * `a?b` : b앞에 a가 없거나 하나만 있는 케이스
+  * `[-@]*` : -, @가 있거나 없는 케이스
+  * `\*+` : *가 하나 이상인 케이스
+  * `-@+-` : 시작과 끝이 - 이면서 @가 하나 이상인 케이스
+  * `[^ ]+` : 공백이 아닌 케이스
+  * `-X?XX?X` : -으로 시작하고 X로 끝나며 그 사이에 X가 있으며 X의 좌우로 X가 0~1개까지만 있는 케이스
+  * `-@?@?@?-` : 시작과 끝이 -이고 @가 0~3개인 케이스
+  * `[^@]@?@` : @가 아닌 문자로 시작하면서 @가 0~1개면서 @로 끝나는 케이스
+
+
+
+ * 수량자 : `{숫자}`
+  * `{숫자}` : 중괄호 안의 숫자 만큼의 수량
+  * `{숫자,숫자}` : 중괄호 안의 첫번째 숫자 ~ 두번째 숫자까지의 수량
+  * `{숫자,}` : 중괄호 안의 첫번째 숫자 이상인 수량
+  * Source [[[#!Text 
+One ring to bring them all and in the darkness bind them
+]]]
+  * `.{5}` : 어떤 문자건 다섯 글자
+  * `[els]{1,3}` : e,l,s 글자들이 1~3개 사이인 글자
+  * `[a-z]{3,}` : 소문자 영문들이 3개 이상인 글자
+
+
+
+ * 수량자 : `{숫자}`
+  * `{숫자}` : 중괄호 안의 숫자 만큼의 수량
+  * `{숫자,숫자}` : 중괄호 안의 첫번째 숫자 ~ 두번째 숫자까지의 수량
+  * `{숫자,}` : 중괄호 안의 첫번째 숫자 이상인 수량
+  * Source [[[#!Text 
+One ring to bring them all and in the darkness bind them
+]]]
+  * `.{5}` : 어떤 문자건 다섯 글자
+  * `[els]{1,3}` : e,l,s 글자들이 1~3개 사이인 글자
+  * `[a-z]{3,}` : 소문자 영문들이 3개 이상인 글자
+  * `r.*` : r + 모든 문자(0~여러개)
+  * `r.*?` : r인 문자(*뒤에 ?가 붙으면 *의 의미가 0~여러개에서 0으로 변경됨.)
+  * `r.+` : r + 모든 문자(1~여러개)
+  * `r.+?` : r + 모든 문자 1개(+뒤에 ?가 붙으면 +의 의미가 1~여러개에서 1로 변경됨.)
+  * `r.?` : r + 모든 문자(0~1개)
+  * `r.??` : r인 문자(?뒤에 ?가 붙으면 ?의 의미가 0~1개에서 0으로 변경됨.)
+
+
+
+ * 단어 : `\w`
+  * 알파벳 + 숫자 + 언더바(_)
+  * Source [[[#!Text 
+A1 B2 c3 d_4 e:5 ffGG77--__--
+]]]
+  * `\w` : 단어 선택
+  * `[a-z]\w*` : 소문자로 시작하면서 단어
+  * `\w{5}` : 단어 다섯자리
+
+
+
+ * 단어가 아닌 것 : `\W`
+  * not word
+  * Source [[[#!Text 
+AS _34:AS11.23  @#$ %12^*
+]]]
+  * `\W` : 단어가 아닌것 선택
+
+
+
+ * 공백 : `\s`
+  * Source [[[#!Text 
+Ere iron was found or tree was hewn,
+When young was mountain under moon;
+Ere ring was made, or wrought was woe,
+It walked the forests long ago.
+]]]
+  * `\s` : 공백 검색
+
+
+
+ * 공백이 아닌것 : `\S`
+  * Source [[[#!Text 
+Ere iron was found or tree was hewn,
+When young was mountain under moon;
+Ere ring was made, or wrought was woe,
+It walked the forests long ago.
+]]]
+  * `\S` : 공백이 아닌 것 검색
+
+
+
+ * 숫자 : `\d`
+  * Source [[[#!Text 
+Page 123; published: 1234 id=12#24@112
+]]]
+  * `\d` : 숫자인 것
+
+
+
+ * 숫자가 아닌 것 : `\D`
+  * Source [[[#!Text 
+Page 123; published: 1234 id=12#24@112
+]]]
+  * `\D` : 숫자가 아닌 것
+
+
+
+ * 단어의 경계? : `\b`
+  * Source [[[#!Text 
+Ere iron was found or tree was hewn,
+When young was mountain under moon;
+Ere ring was made, or wrought was woe,
+It walked the forests long ago.
+cat
+concat
+]]]
+  * `\b.` : 단어의 모든 시작 문자
+  * `.\b` : 단어의 모든 끝 문자
+  * `\bcat` : cat으로 시작하는 문자
+  * `cat\b` : cat으로 끝나는 문자
+
+
+
+ * 단어의 경계?가 아닌 : `\B`
+  * Source [[[#!Text 
+Ere iron was found or tree was hewn,
+When young was mountain under moon;
+Ere ring was made, or wrought was woe,
+It walked the forests long ago.
+cat
+concat
+]]]
+  * `\B.` : 단어의 모든 시작문자의 다음부터 검색
+  * `.\B` : 단어의 모든 끝 문자 이전까지 검색
+
+
+
+ * 시작과 끝 : `\A`, `\Z`
+  * Source [[[#!Text 
+Ere iron was found or tree was hewn,
+When young was mountain under moon;
+Ere ring was made, or wrought was woe,
+It walked the forests long ago.
+cat
+concat
+]]]
+  * `\A...` : 전체 문장의 시작 세글자
+  * `^...` : 각 문장별 시작 세글자
+  * `...\Z` : 전체 문장의 끝 세글자
+  * `...$` : 각 문장별 끝 세글자