문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴
const re = /ab+c/;
var re = new RegExp("ab+c");
Chracter | 뜻 |
---|---|
\| | 또는 |
() | 그룹 |
[] | 문자셋, 괄호안의 어떤 문자든 |
[^] | 부정 문자셋, 괄호안의 어떤 문가 아닐때 |
(?:) | 찾지만 기억하지는 않음 |
Chracter | 뜻 |
---|---|
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
Chracter | 뜻 |
---|---|
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
Chracter | 뜻 |
---|---|
\ | 특수 문자가 아닌 문자 |
. | 어떤 글자 (줄바꿈 문자 제외) |
\d | digit 숫자 |
\D | digit 숫자 아님 |
\w | word 문자 |
\W | word 문자 아님 |
\s | space 공백 |
\S | space 공백 아님 |
ex)
/gr[aed]y/
gr(a혹은 e혹은 d)y
[a-z]
a부터z까지
[^a-z]
a-z제외
gra?y
a가 있거나 없는 경우
gra*y
a가 없거나 있거나 많은 경우
\bya
단어 앞에 있는 ya
ya\b
단어 뒤에 있는 ya
ya\B
단어 뒤에 쓰이지 않는 ya
Task Text
Match can
Match man
Match fan
Skip dan
Skip ran
Skip pan
[cmf]an
Task Text
Match 1. abc
Match 2. abc
Match 3. abc
Skip 4.abc
\d\.\s+abc
Task Text
Match Mission: successful
Skip Last Mission: unsuccessful
Skip Next Mission: successful upon capture of target
^Mission: successful$
Task Text Capture Groups
Capture file_record_transcript.pdf file_record_transcript
Capture file_07241999.pdf file_07241999
Skip testfile_fake.pdf.tmp
(^file_[a-z_0-9]+)
Task Text Capture Groups
Capture Jan 1987 Jan 1987 1987
Capture May 1969 May 1969 1969
Capture Aug 2011 Aug 2011 2011
([A-Za-z]+\s([0-9]+))
Task Text Capture Groups
Capture 1280x720 1280 720
Capture 1920x1600 1920 1600
Capture 1024x768 1024 768
(\d{4})x(\d{3,4})
Task Text
Match I love cats
Match I love dogs
Skip I love logs
Skip I love cogs
I love (cats|dogs)
Task Text
Match 3.14529
Match -255.34
Match 128
Match 1.9e10
Match 123,340.00
Skip 720p
^-?\d+(,\d+)*(\.\d+(e\d+)?)?$
Task Text Capture Groups
Capture 415-555-1234 415
Capture 650-555-2345 650
Capture (416)555-3456 416
Capture 202 555 4567 202
Capture 4035555678 403
Capture 1 416 555 9292
1?[\s-]?\(?(\d{3})\)?[\s-]?\d{3}[\s-]?\d{4}
Task Text Capture Groups
Capture tom@hogwarts.com tom
Capture tom.riddle@hogwarts.com tom.riddle
Capture tom.riddle+regexone@hogwarts.com tom.riddle
Capture tom@hogwarts.eu.com tom
Capture potter@hogwarts.com potter
Capture harry@hogwarts.com harry
Capture hermione+regexone@hogwarts.com hermione
([a-z.]+)([+a-z]+)?@hogwarts.(eu.)?com
Task Text Capture Groups
Capture <a>This is a link</a> a
Capture <a href='https://regexone.com'>Link</a> a
Capture <div class='test_style'>Test</div> div
Capture <div>Hello <span>world</span></div> div
\<(\w+)\>?
Task Text Capture Groups
Skip .bash_profile
Skip workspace.doc
Capture img0912.jpg img0912 jpg
Capture updated_img0912.png updated_img0912 png
Skip documentation.html
Capture favicon.gif favicon gif
Skip img0912.jpg.tmp
Skip access.lock
([a-z0-9_]+)\.(jpg|png|gif)$
첫번째 문자를 찾을 때 ^는 맨 앞에,
마지막 문자를 찾을 때 $는 맨 뒤에 붙인다.
Task Text Capture Groups
Capture The quick brown fox... The quick brown fox...
Capture jumps over the lazy dog. jumps over the lazy dog.
^\s*(.*)\s*$
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions#special-negated-character-set
https://regexone.com/lesson/more_groups?
https://github.com/dream-ellie/regex#readme
https://www.youtube.com/watch?v=t3M6toIflyQ&t=184s