-
카테고리
-
세부 분야
시스템
-
해결 여부
미해결
^[.+] 정규표현식이 RegExr 를 나타내는게 맞나요?
22.01.15 23:58 작성 조회수 208
1
안녕하세요 강의 잘 듣고 있습니다. 4:18에 나오는 정규식 "^[.+] "
가 RegExr를 나타내는게 맞나요?
대괄호 없이 . 만 나올때는 모든 문자를 표현하는게 맞는것 같은데
[.] 대괄호 안에 이 들어가면 모든문자를 나타내는 특수문자가 아닌 그냥 "." 그 자체를 표현해서 매칭이 되지 않는 것 같은데, 확인 부탁드립니다.
(마우스 커서를 올려봤을때도 두 .이 다른것처럼 나옵니다.)
제가 중간에 이해가 잘 안가면 그걸 해결할때까지 다음으로 잘 못넘어가서 이부분을 계속 찾아보고 있습니다.. ㅠㅠ 답변 부탁드려요
그리고 만약 맞다면 .의 경우 []안에 들어가면 그 의미가 바뀌는데, 그러한 특수문자가 어떤것들이 있을까요? 혹시 []안에 들어가면 모두 글자 그대로를 의미하는게 되나요?
감사합니다!
답변을 작성해보세요.
1
홍영기
지식공유자2022.01.16
우하하님!
질문하신 내용에 대한 답변 드립니다.
우하하님이 이 영상속의 오류를 찾아내신 것 같습니다. (부끄럽습니다)
말씀하신 것처럼 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(메타문자) 검색
영상속의 오류는 바로 잡도록 하겠습니다
이로 인해 불편하셨다면 정말 죄송하구요
좀더 꼼꼼히 영상 제작에 임하도록 하겠습니다
감사합니다:)
답변 2