!["[" 또는 "]"(괄호)를 정규 표현식과 일치시키는 방법은 무엇입니까?](https://linux55.com/image/152856/%22%5B%22%20%EB%98%90%EB%8A%94%20%22%5D%22(%EA%B4%84%ED%98%B8)%EB%A5%BC%20%EC%A0%95%EA%B7%9C%20%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC%20%EC%9D%BC%EC%B9%98%EC%8B%9C%ED%82%A4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
패턴이 or regex의 [abc]
단일 문자와 일치한다는 것을 알고 있지만 or를 어떻게 일치시키나요? 나는 그들로부터 적절하게 탈출하는 방법을 모른다.a
b
c
[
]
답변1
사용할 모드는 입니다 [][]
. GNU를 grep
예로 들어 보겠습니다. 다음 세 가지를 모두 사용할 수 있습니다.
grep '[][]' file
grep -P '[][]' file
grep -E '[][]' file
설명하다: 정규 표현식의 대괄호 표현식은 본문이 비어 있을 수 없으므로( grep '[]' file
시도하면 오류가 발생함) [
실제로 첫 번째 표현식은 마지막 표현식과 함께 있습니다 ]
. [
괄호 표현식은 중첩될 수 없기 때문에 괄호는 내부적으로 간섭하지 않으므로 일단 을 보면 RE 엔진은 [
첫 번째 문자를 끝 문자로 찾고 그 뒤의 두 번째 문자부터 시작합니다. 대괄호 표현식 내에서는 및 범위와 시작 부분에 나타나는 문자만 특별하게 처리되며 다른 문자는 이스케이프 없이 문자 그대로 처리됩니다(맨 페이지 링크는 @dave_thompson_085의 설명 참조).]
]
[:class:]
[.coll.]
[=equiv=]
c-c
^