기타
[정규표현식]알아보기(2)
승딱
2021. 5. 26. 16:08
반응형
어떤상황에서 쓰이는지 는 저번글에 알아봤고 오늘은 정규표현식 안에서 쓰이는 기$호들의 의미를 체크해보자
표현식 | 의미 | 예시 |
^ | 시작하는문자를 의미 | ^x => x로 시작하는 문자 |
$ | 종료할때 문자 | x$ => x로 끝나는 문자 |
. | 임이의 한 문자를 의미 | ...x => 3글자 이후에 마지막은 x |
+ | 반복을 의미 | x+ => x가 한번이상반복됨 |
? | 바로 앞에글자가 있을수도 없을수도 | apples? => s?는 “s”가 있을 수도 있고, 없을 수도 있다는 의미로, “apple”, “apples” 모두에 매치된다. |
* | 반복여부(0번 또는 그이상)를 나타낸다 | n\d* : n 뒤에 숫자가 0개 이상이라는 의미. “n”, “n1”, “n123” 에 모두 매치된다. |
| | 또는 을 의미한다. | x|y => x또는 y 문자가 있는거를 의미한다. |
() | 그룹을 의미한다. | (tom|pot)ato : tomato, potato에 모두 매치되는 패턴을 그룹을 써서 좀 더 줄였다. |
(:?) | 비캡처링 그룹을 의미한다. | 특정한 수량 한정자등을 적용은 하려 하지만 최종 결과에서 따로 구분하여 사용할 필요가 없는 경우에 적용 |
메타문자에서 대문자와 소문자의 관계는 반대를 의미한다
\ | 이후에 기호를 문자로 사용한다. | \^ 여기서 ^는 다른의미는 없고 그냥 문자이다. |
\b | 문자의 경계를 의미한다(.ex 공백, 컴마,탭,등등) | \bplay\b => 단어 경계로 구분되는 “play”에는 매치한다. 하지만 “playground”의 “play”에는 매치하지 않는다. |
\B | 문자와 공백사이가 아닌 문자를 의미한다. | \bplay\B :=> “play”뒤에 단어의 경계가 아닌 것이 올 때에만 매치한다. “playground”, “playball”의 “play”에 매치한다. 뒤에 오는 “g”, “b” 등의 문자는 포함하지 않는다. |
\d | 숫자를 의미 | |
\D | 숫자가 아닌것을 의미한다. | |
\s | 공백을 의미한다. | |
\S | 공백이 아닌것을 의미한다. | |
\w | 단어를 만들수 있는 글자를 의미한다. | 알파벳 대소문자, 숫자, 언더스코어를 포함한다. [A-Za-z0-9_] 와 같다. |
\W | 알파벳 + 숫자 + _ 가 아닌 문자를 의미한다. |
--
[] | 문자하나를 의미한다. | [xy]=>x나 y 중 하나의 글자를 의미함 |
[^] | []안에서 ^ 는 not 을 의미한다. | [^xy]=> x,y 를 제외한 문자하나 |
[-] | range 를 의미한다. | [a-z]=> a에서 z사이의 문자열하나 |
{n} | n개의 반복을 의미한다. | n\d{2}$ => “n”뒤에 숫자가 2개 있다. “n12” 에 매치되지만, “n”, “n1”, “n123″에는 매치되지 않는다. n\d{2}라고 했을 때에 “n123″에서는 n12까지만 매치하고 3은 제외한다. |
{n,m} | n개 이상 m개 이하의 반복을 의미한다. | m은 생략시에 n개 이상만을 의미한다 n\d{2, 3}$ => “n12” , “n123″에는 매치되지만 “n1″이나 “n1234″에는 매치되지 않는다. |
위처럼 패턴을 지정하는거 말고 플래그라는 개념도 있다.
regexp = /pattern/; // 플래그가 없음
regexp = /pattern/gmi; // 플래그 g, m, i가 있음
플래그 | 의미 |
g | 글로벌의 의미하며 문자열내의 패턴에 일치하는 모든요소를 찾는다. |
i | ignore 를 의미하며 대소문자를 구별하지 않는다. |
m | 대상 문자열이 다중 라인의 문자열인 경우에 사용한다. |
사용하면서 예시를 추가 해보자!
정규표현식의 개념과 패턴 사용법 총정리 · Wireframe
정규 표현식은 텍스트 내에서 특정한 규칙에 따른 문자열이 나타나는 범위를 검색하는 기법으로 텍스트를 다룰 때 널리 사용되며, 특히 텍스트 편집기에서 찾기/바꾸기와 관련해서 정규식을 어
soooprmx.com