답변:
대괄호 표현식 에서 리터럴 ]
과 리터럴을 일치 시키려면 다음과 같이 사용해야합니다.-
[^]/\^:-]
또는 일부 도구는 백 슬래시를 이스케이프 처리해야 하므로 더 좋습니다 .
[^]/\\^:-]
즉
, 오른쪽 대괄호 ( ']')는 목록에서 처음 (초기 '^'후)이 발생하면 특수한 의미를 잃고 대괄호 표현식으로 표시
되며
하이픈 빼기 문자는 처음 발생하면 그 자체로 처리 (후있는 경우, '^'초기) 목록 또는 최근
따라서
브래킷 발현 모두 지정하는 경우 - 후 (그리고 ']'는 ']가'먼저 배치한다 ' '^'(있는 경우) 및 '-'는 대괄호 표현식 내에서 마지막입니다.
대괄호 식의 규칙은 ERE 및 BRE 와 동일합니다 .
[^-]]
(이 하나가 실패)?
^
이후 ]
지금 [^-]]
에도 모두있는 경우 작동하지 않을 것입니다 ^
및 ]
(처럼 문자 그대로 치료를 받았다 [b-a]
). 어쨌든 예 ;
를 들어 닫는 대괄호 와 일치 시키려면 이전 문자까지의 범위 ]
(백 슬래시) ]
를 사용하고 대괄호 표현식에서 첫 번째 문자로 포함하십시오 (예 :) [];-\\]
.
[[.^.]-[.-.]]
? 이것이 효과가 있다고 생각합니다. 의 ASCII 코드 ^
가 이전 이라고 가정합시다 -
.
[^[.].][.-.]/\^:]
이상하게도 특정 장소에 몇 명의 캐릭터가 있어야합니다. 당신은 있어야합니다 ]
세트에서 첫 번째 문자로, 그리고 -
세트의 마지막 문자 여야합니다.
요구 사항을 충족하는 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
[
캐릭터는 거기에 속하지 않습니다. OP는 제외하고 싶지 않습니다.
awk
구현과 예perl
를 들어 필요합니다.