인프런 커뮤니티 질문&답변

우하하님의 프로필 이미지
우하하

작성한 질문수

리눅스 쉘 스크립트 마스터

정규 표현식

^[.+] 정규표현식이 RegExr 를 나타내는게 맞나요?

작성

·

284

1

안녕하세요 강의 잘 듣고 있습니다. 4:18에 나오는 정규식 "^[.+] "
가 RegExr를 나타내는게 맞나요?
대괄호 없이 . 만 나올때는 모든 문자를 표현하는게 맞는것 같은데
[.] 대괄호 안에 이 들어가면 모든문자를 나타내는 특수문자가 아닌 그냥 "." 그 자체를 표현해서 매칭이 되지 않는 것 같은데, 확인 부탁드립니다.
(마우스 커서를 올려봤을때도 두 .이 다른것처럼 나옵니다.)
 
제가 중간에 이해가 잘 안가면 그걸 해결할때까지 다음으로 잘 못넘어가서 이부분을 계속 찾아보고 있습니다.. ㅠㅠ 답변 부탁드려요
 
그리고 만약 맞다면 .의 경우 []안에 들어가면 그 의미가 바뀌는데, 그러한 특수문자가 어떤것들이 있을까요? 혹시 []안에 들어가면 모두 글자 그대로를 의미하는게 되나요?
 
감사합니다!

답변 2

1

홍영기님의 프로필 이미지
홍영기
지식공유자

우하하님!

질문하신 내용에 대한 답변 드립니다.

우하하님이 이 영상속의 오류를 찾아내신 것 같습니다. (부끄럽습니다)

말씀하신 것처럼 4:18초에 나오는 정규식 '^[.+]' 으로는 불가능하고 '^[\w]+' 으로 가능합니다.

왜냐하면 DOT 는 일반문자로 인식되었을 것이고, + 도 일반문자로 해석되었을 것이기 때문입니다.

이와 관련한 예시를 하나 들어보죠

admin👻 echo 'RegExr was \ created 123 by gskinner.com' | grep -o -E '\d+'
123
admin👻 echo 'RegExr was \ created 123 by gskinner.com' | grep -o -E '[\d]+'
\
d
admin👻

 

대괄호내에는 일반 문자외에 공백문자, 슬래시, 특수문자(\n\t\r\w\d\s\b) 표현 가능합니다

하지만, 대괄호내에 * + ? 와 같은 문자들이 사용되었다면  이 문자들은 메타문자로 인식되는 것이 아니고 일반 문자로 인식됩니다

\w\d\s word, digit, whitespace
\W\D\S not word, digit, whitespace
[abc] any of a, b, or c
[^abc] not a, b, or c
[a-g]

 

아래와 같이 슬래시 사용 예를 통해서 위 내용을 확인해 보시죠

[\\w]+     슬래시 문자(아스키 코드 92) 와 w 문자(아스키 코드 119) 를 검색

[\\\w]+     슬래시 문자(아스키 코드 92) 와 \w(메타문자) 검색

 

영상속의 오류는 바로 잡도록 하겠습니다

이로 인해 불편하셨다면 정말 죄송하구요

좀더 꼼꼼히 영상 제작에 임하도록 하겠습니다

감사합니다:)

0

우하하님의 프로필 이미지
우하하
질문자

예시와 함께 빠른 답변 감사드립니다! 👍🏻

+ 아 그리고 CSS 관련 패턴매칭 연습 URL은 기본 URL로 나와서 수정하실때 이부분도 수정하셔야 할 것 같습니다.

홍영기님의 프로필 이미지
홍영기
지식공유자

우하하님!

감사합니다:-) 수정하였습니다

우하하님의 프로필 이미지
우하하

작성한 질문수

질문하기