= RegularExpressions == 참고 == * https://opentutorials.org/course/909/5143 * http://zvon.org/comp/r/tut-Regexp.html * https://www.regexpal.com/ == history == [RegularExpressionsUsed] == 문법 == * 특정 케이스로 시작 : `^` * 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` : 전체 문장의 끝 세글자 * `...$` : 각 문장별 끝 세글자