정규식과 특수 문자 일치 데 유용하지만 다소 특수한 문자는

소문자와 숫자가 포함 된 것을 찾으려면 매우 쉽다고 가정하십시오.

produce_text | grep -E '[0-9a-z]'

대괄호는 일련의 문자를 일치시키는 데 유용하지만 다소 특수한 문자는 어떻습니까?
대괄호를 사용하려면 닫는 대괄호 , 대시 (또는 하이픈) “-“, 슬래시 및 캐럿 , 콜론 중 하나를 제외한 모든 문자를 일치 시키십시오 .
다음과 같이 보일까요 (작동하지 않는 것을 알고 있습니까)?]/\^:

[^]-/ \ ^ :]


답변

대괄호 표현식 에서 리터럴 ]과 리터럴을 일치 시키려면 다음과 같이 사용해야합니다.-

[^]/\^:-]

또는 일부 도구는 백 슬래시를 이스케이프 처리해야 하므로 더 좋습니다 .

[^]/\\^:-]


, 오른쪽 대괄호 ( ‘]’)는 목록에서 처음 (초기 ‘^’후)이 발생하면 특수한 의미를 잃고 대괄호 표현식으로 표시
되며
하이픈 빼기 문자는 처음 발생하면 그 자체로 처리 (후있는 경우, ‘^’초기) 목록 또는 최근
따라서
브래킷 발현 모두 지정하는 경우 – 후 (그리고 ‘]’는 ‘]가’먼저 배치한다 ‘ ‘^'(있는 경우) 및 ‘-‘는 대괄호 표현식 내에서 마지막입니다.
대괄호 식의 규칙은 EREBRE 와 동일합니다 .


답변

이상하게도 특정 장소에 몇 명의 캐릭터가 있어야합니다. 당신은 있어야합니다 ]세트에서 첫 번째 문자로, 그리고 -세트의 마지막 문자 여야합니다.

요구 사항을 충족하는 RE는 다음과 같습니다. [^]\^/-]:

echo 'Hello[world]-[sun] ^^ 4/5 or 3\4' | grep -Eo '[^]\^/-]' | xargs
H e l l o [ w o r l d [ s u n 4 5 o r 3 4