回答:
ブラケット式のリテラル]
とリテラルを一致させるに-
は、次のように使用する必要があります。
[^]/\^:-]
または、一部のツールではバックスラッシュをエスケープする必要があるため、さらに優れています。
[^]/\\^:-]
つまり
その特別な意味を失い、ブラケット表現で自分自身を表現し、それがリストの最初に発生した場合(「^」初期の後、もしあれば)ならない(「]」)右角括弧
と
ハイフンマイナス文字はなら最初に(最初の '^'がある場合は)後に、またはリストの最後に出現する場合、それ自体として扱われる
ため
、ブラケット式が '-'と ']'の両方を指定する場合、 ']'が最初に( '^'(存在する場合))および '-'が角かっこ式の最後にあります。
ブラケット式の規則は、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
ます。