回答:
ブラケット式のリテラル]とリテラルを一致させるに-は、次のように使用する必要があります。
[^]/\^:-]
または、一部のツールではバックスラッシュをエスケープする必要があるため、さらに優れています。
[^]/\\^:-]
つまり
その特別な意味を失い、ブラケット表現で自分自身を表現し、それがリストの最初に発生した場合(「^」初期の後、もしあれば)ならない(「]」)右角括弧
と
ハイフンマイナス文字はなら最初に(最初の '^'がある場合は)後に、またはリストの最後に出現する場合、それ自体として扱われる
ため
、ブラケット式が '-'と ']'の両方を指定する場合、 ']'が最初に( '^'(存在する場合))および '-'が角かっこ式の最後にあります。
ブラケット式の規則は、EREとBREで同じです。
[^-]](この1つは失敗しましたか)?
^後にされ]そう[^-]]であっても、両方の場合は動作しないでしょう^し、](同じように文字通り処理しました[b-a])。とにかく、あなたが例えばから一致したい場合は;、あなたが前に文字の範囲を使用することができブラケットをクローズする](バックスラッシュがある)とが含ま]例えばので、ブラケット表現に最初の文字として[];-\\]。
[[.^.]-[.-.]]ですか?これでうまくいくと思います。のASCIIコード^がbefore であると仮定しましょう-。
[^[.].][.-.]/\^:]
不思議なことに、特定の場所に2、3人のキャラクターを配置する必要があります。あなたは]セットの最初の文字として持つ必要があり、セット-の最後の文字でなければなりません。
要件を満たす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ます。